تطوير · مدة القراءة: 2 د ·
الطوابع الزمنية في Unix: ثوانٍ أم أجزاء من الألف من الثانية؟
خطأ الأرقام الثلاثة عشر الذي يصل إلى بيئة الإنتاج كل أسبوع، وقاعدة بسيطة جدًا للتمييز بين الوحدتين.

تتعامل JavaScript بأجزاء الألف من الثانية، ومعظم الخوادم بالثواني. اخلط بينهما وستجد تواريخك في يناير 1970، أو بعد عشرات آلاف السنين في المستقبل.
عُدّ الأرقام
الطابع الزمني الحالي بالثواني يتكوّن من 10 أرقام (1790000000 هو 21 سبتمبر 2026). واللحظة نفسها بأجزاء الألف من الثانية من 13 رقمًا، وبالميكروثانية من 16، وبالنانوثانية من 19.
القاعدة
إذا كانت القيمة المطلقة أكبر من 10¹² فهي بأجزاء الألف من الثانية، وإلا فاعتبرها ثواني. تصحّ القاعدة لأي طابع بأجزاء الألف من الثانية بعد سبتمبر 2001، ولأي طابع بالثواني قبل عام 33658.
const ms = Math.abs(n) > 1e12 ? n : n * 1000;
اختر الوحدة صراحة
محوّل الطوابع الزمنية في 4Dev لا يخمّن: "Unix Timestamp" يعني ثواني و"Unix Timestamp (ms)" يعني أجزاء الألف من الثانية، وبجانبهما صيغ بالميكروثانية والنانوثانية. يدعم 33 صيغة في المجموع، منها ISO 8601 وRFC 2822 وSQL DATETIME والتواريخ التسلسلية في Excel.