محول الطابع الزمني Unix
من الطابع الزمني إلى تاريخ مقروء وبالعكس — يكتشف الثواني والميلي ثانية تلقائيًا، ويعرضهما بتوقيتك المحلي وبتوقيت UTC، مع طابع زمني حالي حي.
1,012 مشاهدة
طابع زمني غير صالح
كيف تعمل؟
يَعُدّ الطابع الزمني لنظام يونكس (Unix timestamp) الثواني الكاملة المنقضية منذ الساعة 00:00:00 بتوقيت UTC في 1 يناير 1970 — نقطة مرجعية ثابتة تُسمى "الإيبوك" (epoch). الرقم 1,784,000,000 يقع في يوليو 2026؛ لكل ثانية منذ 1970 عدد صحيح فريد خاص بها، دون أي مفهوم للمنطقة الزمنية أو الشهر التقويمي أو التوقيت الصيفي مضمَّن فيها. هذا هو بالضبط سبب تخزين قواعد البيانات وواجهات البرمجة وملفات السجلات للوقت بهذه الطريقة: يحسب خادمان على طرفي نقيض من الكوكب نفس الطابع الزمني لنفس اللحظة، وترتيب الطوابع الزمنية رقميًا يكافئ ترتيبها زمنيًا — دون الحاجة إلى أي منطق لتحليل التاريخ.
تحويل طابع زمني إلى تاريخ مقروء يعني تفسير ذلك العدد الصحيح وفق منطقة زمنية معينة: اللحظة الأساسية لا تتغير، بل فقط طريقة عرضها. تعرض هذه الأداة منطقتك الزمنية المحلية وUTC جنبًا إلى جنب حتى يسهل ملاحظة أي تباين — على سبيل المثال، الطابع الزمني 1784000000 يُقرأ كـ 2026-07-13 22:13:20 UTC، ما يصبح 2026-07-14 01:13:20 بتوقيت UTC+3. أما في الاتجاه الآخر — من تاريخ مقروء إلى طابع زمني — فينطبق المنطق نفسه بالعكس: تأخذ الأداة حقول التاريخ التي تُدخلها، وتعاملها على أنها تنتمي إلى المنطقة الزمنية التي اخترتها، وتحسب العدد الصحيح المكافئ للإيبوك. يُكتشف الفرق بين الثواني والميلي ثانية تلقائيًا حسب عدد الأرقام، لذا فإن لصق أي من الصيغتين يعمل دون أي إعداد.
معلومات جديرة بالمعرفة
لا يمكن لعدد صحيح كلاسيكي موقّع من 32 بت أن يَعُدّ أكثر من 2,147,483,647 ثانية بعد الإيبوك، وهو حدّ يُبلَغ في الساعة 03:14:07 بتوقيت UTC في 19 يناير 2038 — ما يُعرف بـ"مشكلة عام 2038". الأنظمة التي لا تزال تخزّن الطوابع الزمنية في 32 بت ستلتف إلى رقم سالب في تلك اللحظة، بشكل يشبه من حيث الجوهر خلل الألفية (Y2K). تخزّن الأنظمة الحديثة ذات 64 بت القيمة نفسها في عدد صحيح أكبر بكثير وتبقى صالحة لنحو 292 مليار سنة، لذا فإن قواعد البيانات وأنظمة التشغيل واللغات المعاصرة لا تتأثر بذلك. الطوابع الزمنية السالبة صالحة أيضًا — فهي ببساطة تُرمّز تواريخ سابقة لـ 1 يناير 1970، بالعد إلى الوراء. تفصيل آخر يستحق المعرفة: تُدرَج أحيانًا ثانية كبيسة في UTC لإبقائه متوافقًا مع دوران الأرض، لكن معيار الطابع الزمني ليونكس يتجاهل الثواني الكبيسة تمامًا، ويعامل كل يوم على أنه 86,400 ثانية بالضبط — ما يُبقي حسابات الطابع الزمني بسيطة، على حساب عدم الدقة الفلكية التامة.
تظهر الطوابع الزمنية ليونكس باستمرار في التطوير اليومي: تُرمّز رموز JSON Web Tokens تاريخ انتهائها كحقل exp بثوانٍ منذ الإيبوك، وغالبًا ما تحدد ترويسات ذاكرة التخزين المؤقت HTTP وملفات تعريف الارتباط تاريخ الانتهاء بالطريقة نفسها، وتقارن أنظمة الجدولة الإيبوك الحالي بقيمة مستهدفة لتقرر متى تُفعَّل. ولأن الصيغة مجرد عدد صحيح، فإن حساب التواريخ عليها بسيط للغاية: إضافة 86,400 إلى طابع زمني تعني دائمًا يومًا واحدًا لاحقًا بالضبط بتوقيت UTC، بغض النظر عن الشهر أو السنة الكبيسة التي يقع فيها — وهو أمر يجعل حساب التواريخ التقويمية أكثر عرضة للخطأ بكثير. هذا أيضًا سبب أن كل لغة برمجة تقريبًا توفّر دالة بسيطة لقراءة "الآن" كطابع زمني — time() في PHP، وDate.now() في جافاسكريبت، وtime.time() في بايثون — ولماذا تكفي مقارنة طابعين زمنيين كرقمين عاديين لمعرفة أي حدث وقع أولًا، بغض النظر عن المكان الذي وقع فيه كل منهما في العالم.
الأسئلة الشائعة
لماذا يبدو طابعي الزمني مُزاحًا بمقدار 3 ساعات؟
الطابع الزمني هو بتوقيت UTC بحكم تعريفه؛ يظهر الفرق فقط عند العرض. قارن سطر UTC هنا مع واجهة برمجتك — إذا تطابقا فالبيانات صحيحة والاختلاف فقط في العرض المحلي.
ثوانٍ أم ميلي ثانية — أيهما يستخدم نظامي؟
عُدّ الأرقام: 10 أرقام تعني ثوانٍ (صالحة حتى عام 2286)، و13 رقمًا تعني ميلي ثانية. تستخدم أدوات يونكس ودالة time() في PHP الثواني؛ بينما تستخدم Date.now() في جافاسكريبت وجافا الميلي ثانية.
ماذا يحدث بالضبط عند حدّ "عام 2038"؟
الأنظمة التي تخزّن الطابع الزمني كعدد صحيح موقّع من 32 بت لا يمكنها العدّ لأكثر من 2,147,483,647 — وهو حدّ يُبلَغ في الساعة 03:14:07 بتوقيت UTC في 19 يناير 2038. بعد ثانية واحدة تفيض القيمة وتلتف إلى رقم سالب كبير، تُخطئ البرمجيات عادة في قراءته كتاريخ يعود إلى عام 1901. الأنظمة ذات 64 بت تخزّن العدد الصحيح نفسه بهامش أكبر بكثير ولا تتأثر بذلك.
لماذا تتجاهل الطوابع الزمنية الثواني الكبيسة؟
يعرّف معيار الطابع الزمني ليونكس كل يوم بأنه 86,400 ثانية بالضبط، بحيث يمكنه التحويل بين الثواني والتواريخ التقويمية بحساب بسيط. يُدرج توقيت UTC الحقيقي أحيانًا ثانية كبيسة للبقاء متوافقًا مع دوران الأرض غير المنتظم قليلًا، لكن هذه الثانية الإضافية غير ممثَّلة في الطابع الزمني — بل يتم تجاوزها، ما يُبقي حسابات الطابع الزمني قابلة للتنبؤ على حساب انحراف فلكي بجزء من الثانية.
هل يمكن أن يكون الطابع الزمني ليونكس سالبًا؟
نعم. تُعدّ القيم السالبة الثواني إلى الوراء من الإيبوك، لذا فإن -86400 يمثّل 31 ديسمبر 1969 الساعة 00:00:00 بتوقيت UTC. لا تقبل كل الأنظمة الطوابع الزمنية السالبة، لكن الصيغة نفسها تدعم أي تاريخ قبل 1970 دون معالجة خاصة.
أدوات مشابهة
الإبلاغ عن مشكلة
محول الطابع الزمني Unix
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!