كيف أعرض الميلي ثانية أو الميكرو ثانية في الوقت؟
استخدم Intl.DateTimeFormat لإظهار دقة أجزاء الثانية في عروض الوقت
مقدمة
تعرض معظم شاشات الوقت الساعات والدقائق والثواني. تعمل هذه الدقة بشكل جيد للجداول الزمنية والمواعيد وحفظ الوقت اليومي. ومع ذلك، تتطلب بعض التطبيقات دقة دون الثانية لعرض أعشار أو أجزاء المئة أو أجزاء الألف من الثانية.
تعرض أدوات مراقبة الأداء أوقات الاستجابة بالميلي ثانية. تعرض التطبيقات العلمية القياسات بدقة دون الثانية. تعرض تطبيقات الفيديو والصوت الطوابع الزمنية حتى الميلي ثانية. تسجل أنظمة التسجيل الأحداث بطوابع زمنية بكسور الثانية لتمييز الأحداث المتقاربة زمنياً.
توفر واجهة Intl.DateTimeFormat في جافا سكريبت خيار fractionalSecondDigits لعرض دقة دون الثانية. يشرح هذا الدرس ماهية الثواني الكسرية، وكيفية عرضها، ومتى تحتاج إلى هذا المستوى من الدقة.
فهم دقة الثواني الكسرية
الثانية هي وحدة القياس الأساسية للوقت. تمثل الثواني الكسرية أجزاء من الثانية أصغر من الثانية الكاملة.
عُشر الثانية يساوي 0.1 ثانية، وهو ما يعادل 100 ميلي ثانية. تميز هذه الدقة الأحداث التي تحدث في غضون عُشر ثانية من بعضها البعض.
جزء المئة من الثانية يساوي 0.01 ثانية، وهو ما يعادل 10 ميلي ثانية. تميز هذه الدقة الأحداث التي تحدث في غضون جزء المئة من الثانية من بعضها البعض.
جزء الألف من الثانية يساوي 0.001 ثانية، وهو ما يعادل 1 ميلي ثانية. هذه هي أعلى دقة مدعومة بواسطة Intl.DateTimeFormat.
تمثل جافا سكريبت الثواني الكسرية كأرقام بعد النقطة العشرية. رقم واحد يظهر الأعشار، ورقمان يظهران أجزاء المئة، وثلاثة أرقام تظهر أجزاء الألف.
حول الميكروثانية
يذكر عنوان الدرس الميكروثانية، لكن Intl.DateTimeFormat لا يدعم دقة الميكروثانية. تمثل الميكروثانية جزءاً من مليون من الثانية وتتطلب ستة أرقام بعد النقطة العشرية. تدعم واجهة البرمجة حداً أقصى من ثلاثة أرقام، مما يوفر دقة الميلي ثانية.
تخزن كائنات التاريخ في جافا سكريبت الوقت داخلياً كميلي ثانية منذ 1 يناير 1970 بتوقيت UTC. هذا يعني أن البيانات الأساسية تدعم دقة الميلي ثانية ولكن ليس دقة الميكروثانية.
استخدام خيار fractionalSecondDigits
يتحكم خيار fractionalSecondDigits في عدد الأرقام التي تظهر بعد الفاصلة العشرية في حقل الثواني. يقبل القيم 1 أو 2 أو 3.
يجب تضمين خيار second عند استخدام fractionalSecondDigits. بدون خيار second، يحذف المنسق حقل الثواني تمامًا، ولا يكون لخيار الثواني الكسرية أي تأثير.
const date = new Date('2025-10-15T14:23:45.678');
const formatter = new Intl.DateTimeFormat('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 3
});
console.log(formatter.format(date));
// Output: "2:23:45.678 PM"
يعرض هذا المنسق الساعات والدقائق والثواني وثلاثة أرقام كسرية للثواني. يحتوي كائن Date على دقة بالميلي ثانية، ويعرض المنسق جميع الأرقام الثلاثة.
عرض رقم كسري واحد للثانية
يؤدي ضبط fractionalSecondDigits على 1 إلى عرض أعشار الثانية.
const date = new Date('2025-10-15T14:23:45.678');
const formatter = new Intl.DateTimeFormat('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 1
});
console.log(formatter.format(date));
// Output: "2:23:45.6 PM"
يقوم المنسق بتقريب القيمة إلى منزلة عشرية واحدة. تحتوي القيمة الأصلية على 678 ميلي ثانية، وهو ما يعادل 0.678 ثانية، والتي يتم تقريبها إلى 0.6 ثانية عند عرضها برقم واحد.
عرض رقمين كسريين للثانية
يؤدي ضبط fractionalSecondDigits على 2 إلى عرض أجزاء المئة من الثانية.
const date = new Date('2025-10-15T14:23:45.678');
const formatter = new Intl.DateTimeFormat('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 2
});
console.log(formatter.format(date));
// Output: "2:23:45.67 PM"
يقوم المنسق بتقريب القيمة إلى منزلتين عشريتين. تعادل قيمة 678 ميلي ثانية 0.678 ثانية، والتي يتم تقريبها إلى 0.67 ثانية عند عرضها برقمين.
عرض ثلاثة أرقام كسرية للثانية
يؤدي تعيين fractionalSecondDigits إلى 3 إلى عرض أجزاء الألف من الثانية، وهو ما يعادل الميلي ثانية.
const date = new Date('2025-10-15T14:23:45.678');
const formatter = new Intl.DateTimeFormat('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 3
});
console.log(formatter.format(date));
// Output: "2:23:45.678 PM"
يعرض هذا الدقة الكاملة للميلي ثانية المتاحة في كائنات JavaScript Date. ثلاثة أرقام هي أقصى دقة مدعومة بواسطة Intl.DateTimeFormat.
الدمج مع تنسيق الوقت بنظام 24 ساعة
تعمل الثواني الكسرية مع أي خيارات لتنسيق الوقت، بما في ذلك تنسيق الوقت بنظام 24 ساعة.
const date = new Date('2025-10-15T14:23:45.678');
const formatter = new Intl.DateTimeFormat('en-GB', {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 3,
hourCycle: 'h23'
});
console.log(formatter.format(date));
// Output: "14:23:45.678"
تستخدم اللغة الإنجليزية البريطانية نظام 24 ساعة بشكل افتراضي، ويضمن خيار hourCycle تنسيق 24 ساعة. تظهر الثواني الكسرية بعد الثواني مع فاصل عشري.
تضمين المنطقة الزمنية مع الثواني الكسرية
يمكنك عرض الثواني الكسرية جنبًا إلى جنب مع معلومات المنطقة الزمنية.
const date = new Date('2025-10-15T14:23:45.678Z');
const formatter = new Intl.DateTimeFormat('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 3,
timeZone: 'America/New_York',
timeZoneName: 'short'
});
console.log(formatter.format(date));
// Output: "10:23:45.678 AM EDT"
يقوم هذا المنسق بتحويل التوقيت العالمي المنسق (UTC) إلى توقيت نيويورك ويعرض النتيجة بدقة ميلي ثانية واختصار المنطقة الزمنية.
كيفية تنسيق الثواني الكسرية عبر اللغات المختلفة
تستخدم اللغات المختلفة فواصل عشرية مختلفة للأرقام، ولكن الثواني الكسرية تستخدم بشكل متسق النقطة كفاصل عشري عبر جميع اللغات.
const date = new Date('2025-10-15T14:23:45.678');
const options = {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
fractionalSecondDigits: 3
};
const en = new Intl.DateTimeFormat('en-US', options);
console.log(en.format(date));
// Output: "2:23:45.678 PM"
const de = new Intl.DateTimeFormat('de-DE', options);
console.log(de.format(date));
// Output: "14:23:45.678"
const fr = new Intl.DateTimeFormat('fr-FR', options);
console.log(fr.format(date));
// Output: "14:23:45.678"
const ar = new Intl.DateTimeFormat('ar-SA', options);
console.log(ar.format(date));
// Output: "٢:٢٣:٤٥٫٦٧٨ م"
تستخدم اللغة الإنجليزية تنسيق 12 ساعة مع AM/PM. تستخدم اللغتان الألمانية والفرنسية تنسيق 24 ساعة. تستخدم اللغة العربية الأرقام العربية الهندية ولكنها تحافظ على نفس بنية تنسيق الوقت. تستخدم جميع اللغات نقطة أو فاصل مشابه للثواني الكسرية.
حالات الاستخدام الشائعة للثواني الكسرية
تعرض مراقبة الأداء أوقات الاستجابة بدقة الميلي ثانية.
const startTime = new Date();
// Perform operation
const endTime = new Date();
const formatter = new Intl.DateTimeFormat('en-US', {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 3,
hourCycle: 'h23'
});
console.log(`Operation completed at ${formatter.format(endTime)}`);
// Output: "Operation completed at 14:23:45.678"
هذا يعرض وقت الإكمال الدقيق بدقة الميلي ثانية لتحليل الأداء.
تسجيل البيانات العلمية يتطلب طوابع زمنية دون الثانية.
function logMeasurement(value) {
const timestamp = new Date();
const formatter = new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 3,
hourCycle: 'h23'
});
console.log(`${formatter.format(timestamp)} - Measurement: ${value}`);
}
logMeasurement(23.5);
// Output: "10/15/2025, 14:23:45.678 - Measurement: 23.5"
هذا ينشئ طوابع زمنية بدقة الميلي ثانية للقياسات العلمية.
تعرض طوابع الوقت في مشغل الفيديو الموضع بدقة دون الثانية.
function formatVideoTimestamp(milliseconds) {
const date = new Date(milliseconds);
const formatter = new Intl.DateTimeFormat('en-US', {
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 2,
hourCycle: 'h23',
timeZone: 'UTC'
});
return formatter.format(date);
}
console.log(formatVideoTimestamp(125678));
// Output: "02:05.67"
هذا ينسق طابع الوقت للفيديو بدقة جزء من مائة من الثانية. يمنع ضبط المنطقة الزمنية على UTC تحويل المنطقة الزمنية لقيمة المدة.
متى تستخدم الثواني الكسرية
استخدم الثواني الكسرية عندما تحتاج إلى التمييز بين الأحداث التي تحدث في نفس الثانية. تتطلب مراقبة الأداء، وتصحيح الأخطاء، والقياسات العلمية، وتطبيقات الوسائط عادةً هذه الدقة.
لا تستخدم الثواني الكسرية للحفاظ على الوقت اليومي. نادراً ما تحتاج المواعيد، والجداول الزمنية، والطوابع الزمنية الموجهة للمستخدم إلى دقة دون الثانية. إضافة دقة غير ضرورية يجعل الأوقات أصعب في القراءة والفهم.
اختر العدد المناسب من الأرقام لاحتياجاتك. يوفر رقم واحد دقة كافية للعديد من حالات الاستخدام مع الحفاظ على سهولة القراءة. توفر ثلاثة أرقام أقصى دقة ولكنها تنشئ طوابع زمنية أطول وذات مظهر تقني أكثر.
الملخص
يعرض خيار fractionalSecondDigits دقة أجزاء الثانية في تنسيق الوقت. يقبل القيم 1 أو 2 أو 3 لعرض أعشار أو أجزاء المئة أو أجزاء الألف من الثانية. يجب تضمين خيار second عند استخدام fractionalSecondDigits.
تدعم Intl.DateTimeFormat في جافاسكريبت دقة الميلي ثانية ولكن ليس دقة الميكرو ثانية. تمثل ثلاثة أرقام كسرية الميلي ثانية، وهي أعلى دقة متاحة.
تعمل الثواني الكسرية مع جميع خيارات تنسيق الوقت الأخرى بما في ذلك تنسيق 12 ساعة و24 ساعة، والمناطق الزمنية، واللغات المختلفة. يظل فاصل الكسور العشرية للثواني الكسرية متسقًا عبر جميع اللغات.
استخدم الثواني الكسرية لمراقبة الأداء، والبيانات العلمية، وسجلات التصحيح، والطوابع الزمنية للوسائط. تجنب الثواني الكسرية في حساب الوقت اليومي حيث تكفي دقة الثانية.