الطوابع الزمنية في Discord: الصيغة والأنماط وأمثلة جاهزة
الطابع الزمني في Discord هو وقت Unix بالثواني مع حرف يحدد النمط، ويراه كل قارئ بمنطقته الزمنية وإعداداته المحلية.
أن تكتب «تبدأ الفعالية الساعة 8 مساءً» في خادم يضم أعضاء من عدة قارات وصفةٌ مضمونة للارتباك. ويحل Discord هذه المشكلة بقطعة صغيرة من الترميز: اكتب اللحظة على شكل طابع Unix زمني داخل <t:...>، فيعرضها تطبيق Discord لدى كل قارئ محوّلة إلى منطقته الزمنية ومنسّقة وفق إعداداته المحلية (locale). تكتب أنت قيمة واحدة، ويرى الجميع الوقت المحلي الصحيح.
الصيغة
للطابع الزمني شكلان:
<t:TIMESTAMP>
<t:TIMESTAMP:STYLE>
TIMESTAMP هو وقت Unix: عدد الثواني منذ 1 يناير 1970 بتوقيت UTC، مثل 1790892000. وSTYLE حرف واحد يختار التنسيق. فإن حذفته استخدم Discord النمط f، لذا يُعرض <t:1790892000> و<t:1790892000:f> بالطريقة نفسها. والحرف حساس لحالة الأحرف: d وD نمطان مختلفان.
كل أنماط الطوابع الزمنية
تسرد وثائق المطورين في Discord تسعة أنماط. والأسماء والأمثلة في الجدول التالي منقولة من هناك كما هي، بالإنجليزية. ولا تذكر أدلة قديمة كثيرة إلا سبعة أنماط، فتُغفل s وS.
| الترميز | الاسم في وثائق Discord | ما يعرضه | مثال الوثائق |
|---|---|---|---|
<t:TIMESTAMP:t> | Short Time | الساعات والدقائق | 16:20 |
<t:TIMESTAMP:T> | Medium Time | الساعات والدقائق والثواني | 16:20:30 |
<t:TIMESTAMP:d> | Short Date | تاريخ رقمي | 20/04/2021 |
<t:TIMESTAMP:D> | Long Date | تاريخ مع اسم الشهر مكتوبًا | April 20, 2021 |
<t:TIMESTAMP:f> | Long Date, Short Time (الافتراضي) | تاريخ طويل مع الساعات والدقائق | April 20, 2021 at 16:20 |
<t:TIMESTAMP:F> | Full Date, Short Time | يضيف يوم الأسبوع | Tuesday, April 20, 2021 at 16:20 |
<t:TIMESTAMP:s> | Short Date, Short Time | تاريخ رقمي مع الساعات والدقائق | 20/04/2021, 16:20 |
<t:TIMESTAMP:S> | Short Date, Medium Time | تاريخ رقمي مع وقت يشمل الثواني | 20/04/2021, 16:20:30 |
<t:TIMESTAMP:R> | Relative Time | المسافة الزمنية عن الآن | 4 years ago |
هذه الأمثلة تصف نمطًا عامًا، لا النص الحرفي الذي يراه كل قارئ. فـ Discord ينص على أن الطوابع الزمنية تُعرض بالمنطقة الزمنية للمستخدم وإعداداته المحلية، لذا يختلف من قارئ لآخر ترتيب اليوم والشهر، والفواصل، وأسماء الأشهر، ونظام الساعة 12 أو 24. أما R فيُحسب لحظة عرض الرسالة، ولهذا هو النمط المناسب للعد التنازلي والمواعيد النهائية: يظهر الوقت المستقبلي بصيغة مثل «in 3 hours» (أي بعد 3 ساعات).
رقم واحد لكل المناطق الزمنية
يحدد طابع Unix الزمني لحظة واحدة بعينها، لا وقتًا على ساعة الحائط. فالقيمة 1790892000 هي الساعة 22:00 بتوقيت UTC في 1 أكتوبر 2026، والطابع الزمني المبني عليها يُظهر لكل قارئ وقته المحلي:
| القارئ في | الوقت المحلي المعروض |
|---|---|
| نيويورك | 18:00 في 1 أكتوبر (6:00 مساءً) |
| لندن | 23:00 في 1 أكتوبر |
| كولكاتا | 03:30 في 2 أكتوبر |
| طوكيو | 07:00 في 2 أكتوبر |
التحويل على جانب القارئ تلقائي. والموضع الوحيد الذي تتسلل منه الأخطاء هو جانبك أنت: تحويل «6 مساءً في نيويورك» إلى الرقم الصحيح من الأساس.
الحصول على طابع Unix الزمني
أسرع طريقة هي محوّل الطابع الزمني. فإن كان الحدث بتوقيت جهازك نفسه، فافتح لسان Discord، واختر التاريخ والوقت أو اضغط استخدام الوقت الحالي، فيعطيك الجدول كل الأنماط مرة واحدة: النمط، والرمز الجاهز <t:...> في عمود الشيفرة مع زر نسخ، ومعاينة في عمود تظهر هكذا. وهذا اللسان يقرأ الوقت بمنطقة جهازك الزمنية ويتجاهل قائمة المنطقة الزمنية، فإن كان الحدث مقررًا في مكان آخر فاستخرج الرقم أولًا:
- اختر المنطقة الزمنية التي تُخطَّط فيها الفعالية من قائمة المنطقة الزمنية. تبدأ القائمة على منطقتك أنت، وتسرد مناطق IANA التي يدعمها متصفحك، مثل America/New_York.
- في لوحة التاريخ ← الطابع الزمني اختر التاريخ والوقت، ثم انقر تحويل.
- انسخ قيمة الثواني لا قيمة الميلي ثانية، والصقها داخل
<t:...:F>أو داخل أي نمط تريده. - وللتأكد، الصق الرقم في لوحة الطابع الزمني ← التاريخ، واقرأه بتوقيت UTC، وبأي منطقة زمنية، وكوقت نسبي.
ويعرض شريط الأدوات أيضًا طابع Unix الزمني الحالي مع زر نسخ، وهو مفيد لرسائل مثل «نُشر في» أو «يبدأ الآن». ولجدول مواعيد كامل، يأخذ لسان دفعة طابعًا زمنيًا أو تاريخًا في كل سطر، حتى 500 سطر، ويسلّم نسخ بصيغة CSV الجدول إلى جدول بيانات. أما لسان شيفرة فيكتب تحويل الطابع الزمني المعروض بثماني لغات، ليس PowerShell بينها. وفي الشيفرة، أنتجت كل الأسطر التالية القيمة 1790892000 للساعة 6 مساءً في 1 أكتوبر 2026 بتوقيت UTC−4 (التوقيت الصيفي في نيويورك):
// JavaScript
Math.floor(Date.now() / 1000) // now, in seconds
Date.parse('2026-10-01T18:00:00-04:00') / 1000 // 1790892000
# Python
import time
from datetime import datetime, timedelta, timezone
int(time.time()) # now, in seconds
int(datetime(2026, 10, 1, 18, 0,
tzinfo=timezone(timedelta(hours=-4))).timestamp()) # 1790892000
# Linux shell (GNU date)
date +%s
date -d '2026-10-01 18:00 -0400' +%s # 1790892000
# PowerShell
[DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
[DateTimeOffset]::new(2026, 10, 1, 18, 0, 0, [TimeSpan]::FromHours(-4)).ToUnixTimeSeconds()
الأسطر المعلَّق عليها بـ now, in seconds تعطي الوقت الحالي بالثواني. والإزاحة الثابتة مثل -04:00 لا تصح إلا في جزء من السنة. فنيويورك تنتقل إلى UTC−5 في 1 نوفمبر 2026، لذا يحتاج الوقت نفسه على ساعة الحائط بعد ذلك التاريخ إلى -05:00. والتحويل باسم منطقة زمنية يتجنب المشكلة: هذا ما تفعله قائمة المناطق في المحوّل، وكذلك zoneinfo.ZoneInfo("America/New_York") في Python. وعلى Windows تحتاج Python إلى الحزمة tzdata لذلك، ودونها حصلنا على الخطأ ZoneInfoNotFoundError.
أمثلة جاهزة للصق
تبدأ الصيانة في <t:1790892000:F> (<t:1790892000:R>).
يُغلق تسجيل الحضور في البطولة الساعة <t:1790892000:t>.
يبقى باب التقديم مفتوحًا حتى <t:1790892000:D>.
الجمع بين تاريخ كامل ووقت نسبي، كما في السطر الأول، يعطي القرّاء اللحظة الدقيقة والمدة المتبقية معًا. ولعرض الترميز نفسه بدل التاريخ المنسّق، عند شرحه لأعضاء آخرين مثلًا، ضعه بين علامتي backtick (`) كي يعرضه Discord كشيفرة.
أخطاء شائعة
- ميلي ثانية بدل الثواني. تعيد
Date.now()في JavaScript الوقت بالميلي ثانية، وهو حاليًا من 13 رقمًا؛ أما وقت Unix بالثواني فمن 10 أرقام حتى عام 2286. وإذا قُرئت1790892000000على أنها ثوانٍ فهي تاريخ يبعد أكثر من 50,000 سنة. اقسم على 1000 وقرّب إلى الأدنى. - تحليل تاريخ دون منطقة زمنية. في JavaScript تستخدم
new Date('2026-10-01T18:00')المنطقة الزمنية للجهاز الذي يشغّل الشيفرة، وهي في بوت مستضاف على خادم كثيرًا ما تكون UTC لا منطقتك، بينما يُقرأ نص يحوي تاريخًا فقط مثل'2026-10-01'على أنه منتصف الليل بتوقيت UTC. أضف دائمًا إزاحة، أو حوّل باسم منطقة زمنية. - التحويل في المنطقة الخطأ. إن خططت لفعالية الساعة 20:00 في برلين لكنك حوّلت الساعة 20:00 في منطقتك أنت، فسيرى كل قارئ وقتًا مُزاحًا. اضبط منطقة المحوّل على المكان الذي تُخطَّط فيه الفعالية.
- الثقة بـ
Get-Date -UFormat %sفي PowerShell. في Windows PowerShell 5.1 على جهاز بتوقيت UTC+4 أعاد هذا الأمر قيمة منحرفة بأربع ساعات ومعها كسر عشري. استخدم[DateTimeOffset]::UtcNow.ToUnixTimeSeconds()بدلًا منه. - الخلط بين حروف الأنماط.
fوF، وtوT، وdوD، وsوSكلها أنماط مختلفة، فتحقق من حالة الحرف حين يبدو الناتج أطول أو أقصر مما توقعت.