محوّل الطابع الزمني يونكس
حوّل طوابع يونكس الزمنية إلى تواريخ مقروءة والعكس، في أي منطقة زمنية، مع الطابع الزمني الحي.
طابع زمني أو تاريخ واحد في كل سطر، حتى 500 سطر.
الصق الشيفرة في رسالة على Discord؛ فيراها كل شخص بمنطقته الزمنية ولغته.
حوّل هذا الطابع الزمني في شيفرتك أنت.
محوّل الطابع الزمني يونكس — من Epoch إلى تاريخ والعكس
تخزّن السجلات وقواعد البيانات وواجهات الـ API الوقت رقمًا، بينما يقرؤه الناس تاريخًا. هذا المحوّل المجاني يردم الفجوة في الاتجاهين: الصق قيمة Epoch لترى التاريخ المقروء، أو اختر تاريخًا ووقتًا لتحصل على الرقم الذي تتوقعه شفرتك. والطابع الزمني للحظة الحالية معروض دائمًا في الأعلى جاهزًا للنسخ.
كل الحساب يجري داخل متصفحك، فيمكنك تحويل قيم من سجلات الإنتاج والأنظمة الداخلية دون إرسالها إلى أي مكان.
ما هو الطابع الزمني يونكس
الطابع الزمني يونكس، ويسمى أيضًا وقت Epoch أو وقت POSIX، هو عدد الثواني المنقضية منذ الأول من يناير 1970 عند الساعة 00:00:00 بتوقيت UTC. ولأنه عدد صحيح واحد بلا منطقة زمنية ولا تقويم ولا تنسيق، فهو غير ملتبس ويسهل ترتيبه ومقارنته وطرحه. هذه البساطة سبب استخدامه داخليًا في كل ملف سجل تقريبًا وكل عمود قاعدة بيانات وكل استجابة API، وسبب حاجة كل مطوّر إلى إعادته لصيغة مقروءة عدة مرات أسبوعيًا.
ثوانٍ أم أجزاء من الألف؟ عُدّ الأرقام
هذا أكثر مصادر الالتباس شيوعًا. الطابع الزمني بالثواني يتكوّن حاليًا من 10 أرقام، واللحظة نفسها بالمللي ثانية تتكوّن من 13. يعمل يونكس وPHP وبايثون ومعظم قواعد البيانات بالثواني، بينما تستخدم Date.now() في JavaScript وجافا وكثير من أنظمة السجلات المللي ثانية. فإن سقط التاريخ المحوَّل في 1970 فقد مرّرت مللي ثانية إلى أداة تنتظر ثوانٍ، وإن سقط بعد عشرات آلاف السنين فقد فعلت العكس. ويعدّ هذا المحوّل الأرقام بنفسه: ما يصل إلى 11 رقمًا يُقرأ ثوانيَ، وحتى 14 مللي ثانية، وحتى 17 ميكروثانية، وما زاد على ذلك نانوثانية، ويذكر سطر تحت النتيجة الوحدة التي افترضها. فإن أخطأ، كقيمة بالمللي ثانية من أوائل السبعينيات، فاختر الوحدة بنفسك من قائمة الوحدة بدل كشف تلقائي.
طريقة تحويل الطابع الزمني
- لقراءة قيمة Epoch، الصقها في حقل الطابع الزمني واضغط تحويل.
- وللاتجاه المعاكس، أدخل تاريخًا ووقتًا واضغط تحويل في قسم التاريخ.
- اضغط استخدام الوقت الحالي لتعبئة الحقل باللحظة الراهنة.
- انسخ الطابع الزمني الحيّ من الأعلى كلما احتجت قيمة لاختبار أو رمز أو استعلام.
- اختر منطقة زمنية من القائمة لقراءة التاريخ بتلك المنطقة، أو لإدخال تاريخ بوصفه التوقيت المحلي لتلك المنطقة.
- لتحويل قيم كثيرة دفعة واحدة، افتح لسان دفعة والصق حتى 500 طابع زمني أو تاريخ، سطرًا لكل قيمة، واضغط تحويل الكل. وعند كشف تلقائي تُحدَّد وحدة كل سطر على حدة، ويسلّم زر نسخ بصيغة CSV الجدول إلى جدول بيانات.
طوابع زمنية ستتعرّف عليها
| القيمة | اللحظة | أهميتها |
|---|---|---|
0 | 1 يناير 1970، 00:00:00 UTC | المبدأ نفسه؛ وظهور تاريخ 1970 يعني عادةً قيمة فارغة |
1000000000 | 9 سبتمبر 2001 | أول طابع زمني من عشرة أرقام |
1700000000 | 14 نوفمبر 2023 | نقطة مرجعية حديثة ومفيدة |
2147483647 | 19 يناير 2038 | أكبر قيمة يتّسع لها عدد صحيح بإشارة بطول 32 بت |
| القيم السالبة | قبل 1970 | صالحة، لكن بعض المكتبات وقواعد البيانات لا تدعمها |
أين يظهر وقت Epoch
- في مطالبات
expوiatوnbfداخل الـ JWT — افتحه عبر فاكّ ترميز JWT. - في سجلات الخوادم والتطبيقات حيث يبدأ كل سطر بقيمة Epoch.
- في أعمدة مثل
created_atالمخزَّنة أعدادًا صحيحة بدل نوع تاريخ. - في انتهاء التخزين المؤقت ونوافذ تحديد المعدل ومواعيد المهام المجدولة.
- في حمولات الـ Webhook وتواقيع الـ API التي تتضمن طابعًا زمنيًا لمنع هجمات الإعادة.
- في أوقات تعديل الملفات التي يبلّغ عنها نظام التشغيل.
المناطق الزمنية ولماذا يبدو تاريخك خاطئًا
الطابع الزمني بلا منطقة زمنية؛ إنه نقطة مطلقة في الزمن. والتاريخ الذي تراه ليس إلا تمثيلًا لتلك النقطة في منطقة ما، لذا يُقرأ الرقم نفسه بأوقات محلية مختلفة في الرياض وبرلين وطوكيو. وحين تبدو القيمة منزاحة بضع ساعات فالرقم لا يكاد يكون خاطئًا أبدًا، بل منطقة العرض. خزّن وانقل بتوقيت UTC، وحوّل إلى التوقيت المحلي عند العرض للمستخدم فقط، وضع الفارق في حسبانك عند مقارنة سطر سجل بلقطة شاشة.
مزالق تستحق المعرفة
- مشكلة عام 2038. الأنظمة التي ما زالت تستخدم حقل وقت بإشارة بطول 32 بت ستفيض في 19 يناير 2038. استخدم أنواع وقت بطول 64 بت لكل ما يمتد بعيدًا.
- التوقيت الصيفي. قد تتكرر الساعة المحلية أو تُحذف ساعة كاملة، بينما لا يحدث ذلك لقيم Epoch أبدًا.
- الثواني الكبيسة. يتجاهلها وقت يونكس، فهو ليس عدًّا دقيقًا للثواني الفيزيائية المنقضية.
- النص مقابل العدد. الطابع المخزَّن نصًا يُرتَّب أبجديًا، وينكسر الترتيب لحظة يتغيّر عدد الأرقام.
- التقريب. تحويل المللي ثانية إلى ثوانٍ بالبتر قد ينقل حدثًا إلى الثانية السابقة؛ التزم بطريقة واحدة في كل مكان.
طوابع ديسكورد الزمنية
يعرض ديسكورد طابع يونكس الزمني كتاريخ حيّ يراعي المنطقة الزمنية عندما تكتبه بالشكل <t:1700000000:F>. ولكل حرف نمط شكل مختلف: t وقت قصير، T وقت متوسط (مع الثواني)، d تاريخ قصير، D تاريخ طويل، f تاريخ طويل مع وقت قصير (الافتراضي)، F تاريخ كامل مع اليوم ووقت قصير، s تاريخ قصير مع وقت قصير، S تاريخ قصير مع وقت متوسط، وR للصيغة النسبية مثل «بعد 3 ساعات». يراه كل قارئ بتوقيته المحلي، وهذا هو المقصود.
يبني لسان Discord في المحوّل هذه الرموز نيابةً عنك: اختر التاريخ والوقت أو اضغط استخدام الوقت الحالي، فيعرض الجدول كل الأنماط مع الرمز الجاهز في عمود الشيفرة وزر نسخ ومعاينة في عمود تظهر هكذا. لكن هذا اللسان يقرأ الوقت بالمنطقة الزمنية لجهازك ويتجاهل قائمة المنطقة الزمنية، فلا تصح نتيجته إلا إذا كان الحدث بتوقيت جهازك. أما إذا كان الحدث مقررًا في منطقة أخرى، فاختر تلك المنطقة من قائمة المنطقة الزمنية، وأدخل التاريخ والوقت في لوحة التاريخ ← الطابع الزمني، واضغط تحويل، ثم ضع قيمة الثواني بنفسك داخل <t:...:F>. ولسان دفعة يعرض عمود المنطقة الزمنية المختارة بمنطقة القائمة، لكنه يقرأ التاريخ المكتوب بلا إزاحة بمنطقة جهازك أيضًا، لذا اكتب الإزاحة في كل سطر عند إعداد جدول مواعيد، مثل 2026-10-01T18:00-04:00.
تحويل الطابع الزمني في الكود وSQL وExcel
يكتب لسان شيفرة في المحوّل هذا التحويل للقيمة الموجودة في حقل الطابع الزمني، أو للوقت الحالي إن كان الحقل فارغًا، بلغات JavaScript وPython وPHP وSQL وGo وJava وC# وBash، مع زر لنسخه. والجدول التالي هو النسخة المختصرة لتبقى في متناولك.
| أين | الطابع الزمني الحالي | من طابع زمني إلى تاريخ |
|---|---|---|
| JavaScript | Math.floor(Date.now() / 1000) | new Date(ts * 1000) |
| Python | int(time.time()) | datetime.fromtimestamp(ts, tz=timezone.utc) |
| PHP | time() | date('Y-m-d H:i:s', $ts) |
| MySQL | UNIX_TIMESTAMP() | FROM_UNIXTIME(ts) |
| PostgreSQL | EXTRACT(EPOCH FROM now()) | to_timestamp(ts) |
| سطر أوامر Linux | date +%s | date -d @1700000000 |
| Excel / Google Sheets | - | =A1/86400 + DATE(1970,1,1) ثم نسّق الخلية كتاريخ (بتوقيت UTC؛ للميلي ثانية اقسم على 86400000) |
أدوات ذات صلة
قيم الوقت نادرًا ما تأتي وحدها. افحص انتهاء صلاحية رمز عبر فاكّ ترميز JWT، ورتّب حمولة سجل عبر منسّق JSON، وابحث عن أنماط التواريخ في النص عبر مختبِر التعابير النمطية، وأنشئ معرّفات طلبات عبر مولّد UUID. ولمعرفة موعد التشغيل التالي لمهمة مجدولة، استخدم شارح تعبيرات Cron.