الوقت/الأرقام

Unix Timestamp ↔ التاريخ

تحويل وقت Unix إلى تاريخ والعكس، مع دعم أي منطقة زمنية (IANA).


                    

Unix time (epoch time) is the number of seconds elapsed since January 1, 1970, 00:00:00 UTC. It's the most common way to store time in databases, APIs, and logs, since it's just a single integer with no tie to a specific timezone or date format.

How to use it

Common uses

Things to keep in mind

Mixing up seconds and milliseconds is the most common mistake: JavaScript's Date.now() returns milliseconds, while most Unix APIs use seconds — a factor of 1000 off.

Unix time itself has no timezone — it's always UTC; a timezone is only applied when displaying the date to a person.

مقالة عن هذه الأداة: وقت يونكس: لماذا تحسب الحواسيب الوقت منذ 1970

الأسئلة الشائعة

ما هو Unix timestamp؟

هو عدد الثواني التي مرت منذ 1 يناير 1970 الساعة 00:00:00 UTC (حقبة Unix). هذا الرقم غير مرتبط بأي منطقة زمنية — تُطبَّق المنطقة الزمنية فقط عند عرض التاريخ لشخص ما.

ما الفرق بين الثواني والميلي ثانية؟

تُرجع JavaScript وبعض واجهات البرمجة (مثل ()Date.now) الطابع الزمني بالميلي ثانية، بينما وقت Unix الكلاسيكي بالثواني. الخلط بين الوحدة يعطي تاريخًا إما في 1970 أو في مكان ما في المستقبل البعيد — اختر الوحدة الصحيحة في حقل "الوحدات".

ما هي مشكلة عام 2038؟

في الأنظمة التي يُخزَّن فيها الطابع الزمني كعدد صحيح موقّع بـ 32 بت، سيفيض عداد الثواني في 19 يناير 2038. لا تعاني الأنظمة الحديثة ذات 64 بت من هذه المشكلة.

هل يراعي وقت يونكس الثواني الكبيسة؟

لا، كل يوم في وقت يونكس يساوي دائمًا 86400 ثانية بالضبط، وتُتجاهَل الثواني الكبيسة. الأنظمة التي تحتاج مزامنة دقيقة مع UTC الفلكي تتعامل مع الثواني الكبيسة بآلية منفصلة خارج طابع يونكس الزمني القياسي.

هل يمكن أن يكون طابع يونكس الزمني سالبًا؟

نعم، القيم السالبة تقابل تواريخ سابقة لـ1 يناير 1970. تتعامل معظم الأنظمة الحديثة مع هذه القيم بشكل صحيح، رغم أن بعض واجهات البرمجة أو المكتبات القديمة قد لا تدعمها.

مقالات: الوقت/الأرقام

تعبيرات Cron: كيف تفكّ جدولة المهام

كيف تفكّ تعبيرًا مثل */15 * * * * وتعرف بالضبط متى ستُشغَّل المهمة.

أنظمة العد: لماذا توجد الأنظمة الثنائية والثمانية والسداسية عشرية

لماذا يُكتب اللون #FF5733 في CSS بأرقام سداسية عشرية لا عشرية.

العمليات على البتات: كيف تعمل AND وOR وXOR على مستوى البت

كيف يختلف AND على مستوى البت عن AND المنطقي، ولماذا نحتاج للعمل على بتات فردية من رقم أصلًا.

الفرق بين التواريخ: لماذا عدّ الأيام أعقد مما يبدو

لماذا قد يعطي طرح التواريخ ببساطة نتيجة خاطئة بسبب السنوات الكبيسة.

حساب العمر: لماذا ليس مجرد طرح سنوات

لماذا قد يعطي طرح سنة الميلاد ببساطة عمرًا أكبر بسنة من العمر الحقيقي.

المناطق الزمنية: لماذا لا يعني UTC نفس معنى GMT

لماذا لا يتغيّر UTC أبدًا مرتين في السنة، بينما يتغيّر توقيت لندن (GMT/BST).

حاسبة المدة: كيف تجمع الساعات والدقائق والثواني بشكل صحيح

لماذا يجب "ترحيل" الباقي إلى الخانة التالية عند جمع الدقائق والثواني، تمامًا كما في الجمع العشري.

ISO 8601 Duration: كيف تكتب مدة بصيغة قياسية

لماذا تعني الصيغة PT1H30M «ساعة و30 دقيقة»، لا «دقيقة و30 ساعة».

رقم الأسبوع: لماذا تحسب دول مختلفة الأسابيع بطرق مختلفة

لماذا ينتمي 1 يناير أحيانًا إلى الأسبوع 52 أو 53 من العام السابق وفق معيار ISO 8601.

الأرقام الرومانية: كيف يعمل نظام بلا صفر وبلا منازل

لماذا يعني IV الرقم 4 لا 6، وكيف تعمل قاعدة الطرح في الأرقام الرومانية.

IEEE 754: لماذا لا يساوي 0.1 + 0.2 القيمة 0.3 في الكود

لماذا تعرض تقريبًا كل لغات البرمجة نتيجة 0.1 + 0.2 كـ0.30000000000000004.

الرقم كتابةً: لماذا نحوّل الأرقام إلى كلمات

لماذا تكتب المستندات المصرفية المبلغ بالأرقام والحروف معًا.