قراءة مطالبتي exp / iat في JWT
تشفّر JSON Web Tokens المطالبتين iat (وقت الإصدار) وexp (وقت انتهاء الصلاحية) كثوانٍ Unix. ألصق الرقم لترى فوراً ما إذا كان الرمز ما يزال صالحاً، ومتى صدر، وكم تبقى على انتهاء صلاحيته.
حوّل أي طابع زمني Unix (بالثواني أو الميلي ثانية) إلى تاريخ مقروء — أو أي تاريخ إلى epoch — فوراً. ISO 8601 وRFC 2822 وUTC والوقت المحلي و10+ مناطق زمنية في عرض واحد.
الطابع الزمني Unix (يُسمّى أيضاً "وقت Unix" أو "وقت epoch") هو عدد الثواني المنقضية منذ 00:00:00 UTC يوم الخميس 1 يناير 1970، متجاهلاً الثواني الكبيسة. إنه التنسيق الزمني العالمي المستخدم في قواعد البيانات وملفات السجل وواجهات API وملفات تعريف الارتباط. الرقم المؤلَّف من 10 خانات يمثّل ثوانٍ (سيتحول إلى 11 خانة عام 2286)؛ والرقم المؤلَّف من 13 خانة يمثّل ميلي ثانية.
تستخدم معظم أدوات Unix (curl وdate وsyslog ومطالبتا exp/iat في JWT) الثواني. أما Date.now في JavaScript فيعيد الميلي ثانية. وتستخدم Java وKotlin وكثير من واجهات الويب الميلي ثانية. إذا كان رقمك مؤلّفاً من نحو 10 خانات اليوم فهو بالثواني، وإذا كان من 13 خانة فهو بالميلي ثانية. يكتشف iKit الوحدة تلقائياً بعدد الخانات، ويمكنك فرض الوحدة عبر أزرار الاختيار.
—
ثوانٍ
—
ميلي ثانية
يفسّر المتصفح المنتقي وفق منطقتك الزمنية المحلية — غيّر منطقة نظام التشغيل للتحويل من منطقة مختلفة.
أي شيء يفهمه Date.parse: "2024-01-15 10:30 UTC"، "Jan 15, 2024"، "2024-01-15T10:30:00+09:00".
مصمَّم للمطورين الذين يصحّحون السجلات وواجهات API وطوابع قواعد البيانات الزمنية — بلا تسجيل ولا رفع ولا طرف ثالث بينك وبين بياناتك.
يتحدّث وقت Unix الحالي كل ثانية في أعلى الصفحة بالثواني والميلي ثانية. نسخ بنقرة واحدة لأي صيغة.
ألصق أي عدد صحيح — يُعتبر 10 أرقام ثوانٍ، و13 رقماً ميلي ثانية، و16 رقماً ميكرو ثانية. يمكنك تجاوز الاكتشاف يدوياً عبر مفتاح الوحدة عند الحاجة.
ISO 8601 وRFC 2822 وساعة UTC ووقتك المحلي وصيغة سنة-شهر-يوم ساعة:دقيقة:ثانية في عرض واحد. إضافةً إلى اليوم من الأسبوع وفارق زمني نسبي مقروء ("منذ ساعتين").
شاهد اللحظة نفسها في UTC ونيويورك ولوس أنجلوس ولندن وباريس وطوكيو وشنغهاي وتايبيه وكولكاتا وسيدني — مفيد لحوادث الفرق العابرة للحدود وواجهات API العالمية.
بدّل إلى وضع تاريخ ← طابع زمني لكتابة "Jan 15 2024 10:30 UTC" أو الاختيار من حقل تاريخ-وقت، واحصل على طابع Unix بالثواني والميلي ثانية.
كل شيء يعمل عبر JavaScript مُحمَّل سابقاً في علامة تبويب متصفحك. يمكن التحقق منه في DevTools ← Network: لا fetch ولا XHR ولا تسجيل. آمن لطوابع الإنتاج الزمنية.
الطابع الزمني Unix مجرّد عدد صحيح — لكنّ تحويله إلى تاريخ ينطوي على قدر مفاجئ من التفاصيل.
قد يكون الطابع الزمني Unix بالثواني أو الميلي ثانية أو الميكرو ثانية أو النانو ثانية بحسب المصدر. أول مهمة هي معرفة أيّها لديك. يفحص iKit عدد الخانات: ~10 = ثوانٍ، ~13 = ميلي ثانية، ~16 = ميكرو ثانية. ويمكنك تجاوز الاكتشاف التلقائي عبر أزرار اختيار الوحدة.
يستقبل مُنشئ Date في JavaScript الميلي ثانية، لذا نضرب الثواني × 1000 (أو نقسم الميكرو ثانية / 1000) للتطبيع. داخلياً يخزّن Date عدد الميلي ثانية منذ epoch في عدد عشري بـ 64 بت — وهو نطاق وفير لأي طابع زمني واقعي.
بمجرد حصولنا على كائن Date، نطلب منه التنسيق بطرق متعددة: toISOString لـ ISO 8601 / UTC، وtoUTCString لـ RFC 2822، وtoString للمنطقة المحلية للمستخدم، وIntl.DateTimeFormat لأي منطقة زمنية أخرى نريد عرضها.
في الاتجاه الآخر، يتعامل Date.parse في المتصفح مع ISO 8601 وكثير من الصيغ الطبيعية. ويُفسَّر حقل datetime-local وفق المنطقة المحلية للمستخدم. ويعيد getTime الميلي ثانية منذ epoch؛ اقسمها على 1000 للحصول على الثواني.
مواقف حقيقية ستلجأ فيها إلى محوّل epoch.
تشفّر JSON Web Tokens المطالبتين iat (وقت الإصدار) وexp (وقت انتهاء الصلاحية) كثوانٍ Unix. ألصق الرقم لترى فوراً ما إذا كان الرمز ما يزال صالحاً، ومتى صدر، وكم تبقى على انتهاء صلاحيته.
Postgres عبر extract(epoch from now)، وMySQL عبر UNIX_TIMESTAMP، وMongoDB عبر $toDate — جميعها تُعيد epoch Unix. ألصق قيمة الطابع الزمني لصفّ ما لرؤية وقت الساعة الفعلي عبر المناطق الزمنية.
سجلات التطبيق بـ UTC، وsyslog بالوقت المحلي، وسجلات مزوّد خارجي بـ PST. حوّل كل طابع زمني إلى ISO 8601 هنا، ثم تستطيع مصافّتها ثانيةً بثانية أثناء تتبّع حادثة.
اختر تاريخاً مستقبلياً في المنتقي، وانسخ طابع Unix الزمني، وألصقه في ترويسة Set-Cookie أو في حقل Expires في HTTP أو في إعدادات TTL للذاكرة المؤقتة. بلا حساب ذهني وبلا أخطاء انزياح المنطقة بفارق ثانية.
الطوابع الزمنية القادمة من سجلات الإنتاج وتذاكر دعم العملاء وسجلات التدقيق وتركيبات الاختبار قد تبدو غير ضارة، لكنها مرتبطة بأفعال المستخدمين وأحداث البنية التحتية. لصقها على خادم شخص آخر يخلق أثراً ورقياً لا تتحكم فيه. يعمل محوّل iKit عبر JavaScript مُحمَّل سابقاً في علامة تبويب متصفحك.
دروس تفصيلية ومقارنات بين الأدوات من مدونة iKit.
الطابع الزمني Unix (يُسمّى أيضاً "وقت Unix" أو "وقت epoch") هو عدد الثواني المنقضية منذ 00:00:00 UTC يوم الخميس 1 يناير 1970، متجاهلاً الثواني الكبيسة. إنه التنسيق الزمني العالمي المستخدم في قواعد البيانات وملفات السجل وواجهات API وملفات تعريف الارتباط. الرقم المؤلَّف من 10 خانات يمثّل ثوانٍ (سيتحول إلى 11 خانة عام 2286)؛ والرقم المؤلَّف من 13 خانة يمثّل ميلي ثانية.
تستخدم معظم أدوات Unix (curl وdate وsyslog ومطالبتا exp/iat في JWT) الثواني. أما Date.now في JavaScript فيعيد الميلي ثانية. وتستخدم Java وKotlin وكثير من واجهات الويب الميلي ثانية. إذا كان رقمك مؤلّفاً من نحو 10 خانات اليوم فهو بالثواني، وإذا كان من 13 خانة فهو بالميلي ثانية. يكتشف iKit الوحدة تلقائياً بعدد الخانات، ويمكنك فرض الوحدة عبر أزرار الاختيار.
لا. الأداة بأكملها هي JavaScript تعمل داخل علامة تبويب متصفحك. التحويل مجرّد عمليات حسابية على Date — لا fetch ولا XHR ولا beacon. افتح DevTools ← Network وراقب: لا تُرسَل أي طلبات أثناء الكتابة. آمن للصق طوابع زمنية من سجلات الإنتاج أو قواعد بيانات الاختبار أو تذاكر دعم العملاء.
الطابع الزمني Unix لا يرتبط بمنطقة زمنية بحكم تعريفه — فهو عدد الثواني منذ epoch وفق UTC. الاختلاف يظهر فقط عند العرض. منتقي الجانب تاريخ ← طابع زمني يستخدم منطقة المتصفح المحلية. لإدخال تاريخ بمنطقة أخرى، اكتبه بصيغة حرّة مع إزاحة صريحة، مثل "2024-01-15 10:30:00 +09:00" أو "2024-01-15 10:30 UTC".
تطفح طوابع Unix الزمنية ذات الـ 32 بت بإشارة في 19 يناير 2038. يستخدم iKit نوع Number في JavaScript (نطاق العدد الصحيح الآمن 53 بت)، لذا نتعامل مع تواريخ تتجاوز عام 275000 ميلادية. تؤثر مشكلة Y2038 على الأنظمة التي تستخدم time_t بحجم 32 بت — وقد انتقلت معظم أنوية أنظمة التشغيل وقواعد البيانات واللغات الحديثة إلى الزمن بـ 64 بت، لكن البرامج الثابتة المضمَّنة القديمة قد تظل عرضة لها.