دليل تحويل الطوابع الزمنية: Unix وISO 8601
إجابة سريعة
Unix = ثواني منذ 1970-01-01. JavaScript: new Date(unix * 1000). ISO 8601: YYYY-MM-DDTHH:MM:SSZ. استخدم محول الطوابع الزمنية المجاني للتحويل الثنائي — يدعم Unix وISO 8601 في متصفحك.
مقدمة
طوابع Unix الزمنية هي ثواني منذ 1970-01-01 00:00:00 UTC. ISO 8601 هو تنسيق مقروء: 2023-11-14T22:13:20Z. JavaScript Date يستخدم مللي ثانية، لذا اضرب طابع Unix في 1000. المناطق الزمنية تؤثر على العرض لكن ليس على القيمة المطلقة.
خطوة بخطوة
-
فهم الثواني مقابل المللي ثانية
تستخدم معظم أنظمة الواجهة الخلفية وAPIs الثواني (طوابع زمنية مكونة من 10 أرقام حتى 2286). تاريخ جافا سكريبت والاستخدام الفوري لجافا بالمللي ثانية (13 رقمًا). تأكد دائمًا من الوحدة التي يتوقعها API — يؤدي خلطها إلى تغيير التاريخ بعامل 1000 (إيقاف بمقدار 31 عامًا تقريبًا).
-
تحويل الطابع الزمني إلى تاريخ قابل للقراءة
الصق الطابع الزمني في محول الطابع الزمني. يكتشف الثواني مقابل المللي ثانية من حيث الطول (10 مقابل 13 رقمًا) ويعرض التاريخ بالتوقيت العالمي المنسق (UTC) والمنطقة الزمنية المحلية الخاصة بك. في الكود: التاريخ الجديد (1700000000 * 1000).toISOString() يُرجع "2023-11-14T22:13:20.000Z".
-
تحويل التاريخ إلى الطابع الزمني
أدخل التاريخ والوقت في المحول؛ تقوم بإرجاع الطابع الزمني Unix. في الكود: يقوم Math.floor(new Date('2026-08-28T12:00:00Z').getTime() / 1000) بإرجاع ثواني العصر. قم دائمًا بتحديد المنطقة الزمنية (Z أو الإزاحة) لتجنب غموض التوقيت المحلي.
-
التعامل مع المناطق الزمنية بشكل صحيح
الطوابع الزمنية لنظام Unix تكون دائمًا بالتوقيت العالمي المنسق (UTC)، ولا تحتوي على منطقة زمنية. قم بالتحويل إلى عرض محلي فقط في طبقة العرض التقديمي. لا تقم أبدًا بتخزين التوقيت المحلي كطابع زمني؛ تخزين UTC وتحويله على الشاشة. استخدم أسماء المناطق الزمنية لـ IANA (America/New_York) مع Intl.DateTimeFormat للتعامل الصحيح مع التوقيت الصيفي.
-
حساب الاختلافات بين التواريخ
اطرح طابعين زمنيين للحصول على الفرق بالثواني (أو المللي ثانية). اقسم على 60 للدقائق، 3600 للساعات، 86400 للأيام. استخدم أداة فرق التاريخ الخاصة بنا للنطاقات الملائمة للإنسان، أو حاسبة العمر للأعمار المستندة إلى تاريخ الميلاد.
أمثلة
عصر يونكس
مدخل: 0 (seconds)
الإخراج: 01-01-1970 00:00:00 بالتوقيت العالمي
مليار ثانية بعد العصر
مدخل: 1000000000 (seconds)
الإخراج: 2001-09-09 01:46:40 بالتوقيت العالمي
بداية عام 2026 بالتوقيت العالمي المنسق
مدخل: 2026-01-01T00:00:00Z
الإخراج: 1767225600 (ثانية) / 1767225600000 (ميلي ثانية)
الفرق بين تاريخين
مدخل: 1767225600 - 1700000000
الإخراج: 67225600 seconds = 778.08 days ≥2 years 31 days
المشاكل الشائعة
- ارتباك الثواني مقابل المللي ثانية: الطابع الزمني المكون من 10 أرقام يُقرأ بالمللي ثانية يعطي تاريخًا في عام 1970؛ يتم قراءة الطابع الزمني المكون من 13 رقمًا مع تجاوز عدد الثواني 32 بت. اكتشف الوحدة عن طريق عدد الأرقام أو قم بتوثيقها بشكل واضح في API.
- تخزين التوقيت المحلي كطابع زمني: الطوابع الزمنية هي UTC. إذا قمت بحساب Date.now() في متصفح تم ضبطه على UTC-5 وتعاملت مع النتيجة على أنها محلية، فإن انتقالات التوقيت الصيفي ستغير بياناتك بمقدار ساعة مرتين في السنة.
- تجاوز السعة 32 بت في 19-01-2038 03:14:07 بالتوقيت العالمي (Y2038): لا يمكن للأنظمة التي تستخدم طابعًا زمنيًا موقعًا للثواني 32 بت أن تمثل التواريخ بعد هذه النقطة. استخدم طوابع زمنية بحجم 64 بت أو ميلي ثانية في الأنظمة الجديدة.
- يتم تجاهل الثواني الكبيسة: الطوابع الزمنية لنظام Unix تتخطى الثواني الكبيسة، وبالتالي فإن الفرق بين طابعين زمنيين لا يساوي عدد ثواني SI المنقضية. يمكن لمعظم التطبيقات تجاهل هذا؛ لا يستطيع علم الفلك والتمويل عالي الدقة ذلك.
نصائح
- قم دائمًا بتخزين وإرسال الطوابع الزمنية بالتوقيت العالمي المنسق (UTC)؛ قم بالتحويل إلى التوقيت المحلي فقط في طبقة العرض باستخدام Intl.DateTimeFormat مع المنطقة الزمنية لـ IANA.
- استخدم سلاسل ISO 8601 (على سبيل المثال 2026-08-28T12:00:00Z) لـ APIs التي يمكن قراءتها بواسطة الإنسان والطوابع الزمنية للتخزين — تحمل سلاسل ISO منطقتها الزمنية بشكل واضح ولا لبس فيها.
- عند مقارنة الطوابع الزمنية، استخدم نفس الوحدة (الثواني أو المللي ثانية) على كلا الجانبين - يعد عدم تطابق الوحدة أحد أخطاء التاريخ الأكثر شيوعًا.
- استخدم محول الطابع الزمني الخاص بنا للتحقق من سلامة الاستجابات API أثناء تصحيح الأخطاء - فهو يعرض التوقيت العالمي المنسق (UTC) والتوقيت المحلي حتى تتمكن من اكتشاف أخطاء المنطقة الزمنية على الفور.