كيف أعرض الميلي ثانية أو الميكرو ثانية في الوقت؟
استخدم Intl.DateTimeFormat لإظهار دقة أقل من الثانية في عروض الوقت
مقدمة
تعرض معظم شاشات الوقت الساعات والدقائق والثواني. تعمل هذه الدقة للجداول الزمنية والمواعيد وضبط الوقت اليومي. ومع ذلك، تتطلب بعض التطبيقات دقة أقل من الثانية لعرض أعشار أو أجزاء من مئة أو أجزاء من ألف من الثانية.
تعرض أدوات مراقبة الأداء أوقات الاستجابة بالميلي ثانية. تعرض التطبيقات العلمية القياسات بدقة أقل من الثانية. تعرض تطبيقات الفيديو والصوت الطوابع الزمنية حتى الميلي ثانية. تسجل أنظمة التسجيل الأحداث بطوابع زمنية كسرية لتمييز الأحداث المتقاربة.
توفر Intl.DateTimeFormat في JavaScript خيار fractionalSecondDigits لعرض دقة أقل من الثانية. يشرح هذا الدرس ماهية الثواني الكسرية، وكيفية عرضها، ومتى تحتاج إلى هذا المستوى من الدقة.
فهم دقة الثواني الكسرية
الثانية هي الوحدة الأساسية لقياس الوقت. تمثل الثواني الكسرية أجزاء من الثانية أصغر من ثانية واحدة كاملة.
يساوي عُشر الثانية 0.1 ثانية، أي ما يعادل 100 ميلي ثانية. تميز هذه الدقة الأحداث التي تحدث خلال عُشر ثانية من بعضها البعض.
يساوي جزء من مئة من الثانية 0.01 ثانية، أي ما يعادل 10 ميلي ثانية. تميز هذه الدقة الأحداث التي تحدث خلال جزء من مئة من الثانية من بعضها البعض.
يساوي جزء من ألف من الثانية 0.001 ثانية، أي ما يعادل 1 ميلي ثانية. هذه هي أعلى دقة يدعمها Intl.DateTimeFormat.
تمثل JavaScript الثواني الكسرية كأرقام بعد الفاصلة العشرية. يُظهر رقم واحد الأعشار، ويُظهر رقمان الأجزاء من مئة، وتُظهر ثلاثة أرقام الأجزاء من ألف.
حول الميكرو ثانية
يذكر عنوان الدرس الميكروثانية، لكن Intl.DateTimeFormat لا يدعم دقة الميكروثانية. تمثل الميكروثانية أجزاء من المليون من الثانية وتتطلب ستة أرقام بعد الفاصلة العشرية. تدعم واجهة برمجة التطبيقات حداً أقصى من ثلاثة أرقام، مما يوفر دقة الميلي ثانية.
تخزن كائنات Date في JavaScript الوقت داخلياً كميلي ثانية منذ 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"
يعرض هذا الدقة الكاملة للميلي ثانية المتاحة في كائنات Date في JavaScript. ثلاثة أرقام هي الدقة القصوى المدعومة بواسطة 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 في JavaScript دقة الميلي ثانية ولكن ليس دقة الميكروثانية. تمثل ثلاثة أرقام كسرية الميلي ثانية، وهي أعلى دقة متاحة.
تعمل الأجزاء الكسرية من الثانية مع جميع خيارات تنسيق الوقت الأخرى بما في ذلك تنسيق 12 ساعة و24 ساعة والمناطق الزمنية واللغات المختلفة. يظل الفاصل العشري للأجزاء الكسرية من الثانية متسقًا عبر اللغات.
استخدم الأجزاء الكسرية من الثانية لمراقبة الأداء والبيانات العلمية وسجلات تصحيح الأخطاء والطوابع الزمنية للوسائط. تجنب الأجزاء الكسرية من الثانية في ضبط الوقت اليومي حيث تكفي دقة الثانية.