كيف تقوم بتنسيق التواريخ في أنظمة تقويم مختلفة؟

استخدم خيار التقويم في جافا سكريبت لعرض التواريخ في التقويمات الإسلامية والعبرية واليابانية والصينية وأنظمة تقويم أخرى للمستخدمين في جميع أنحاء العالم

مقدمة

يفترض معظم المطورين أن التواريخ تعمل بنفس الطريقة في كل مكان. تقوم بإنشاء كائن Date لتاريخ 15 مارس 2025، وتنسيقه، وعرضه للمستخدمين. ومع ذلك، ينهار هذا الافتراض عندما يتبع مستخدموك أنظمة تقويم مختلفة.

في العديد من الثقافات، يكون لتاريخ 15 مارس 2025 في التقويم الميلادي تمثيل مختلف تمامًا. بالنسبة للمستخدمين الذين يتبعون التقويم الإسلامي، تحدث نفس اللحظة في 16 رمضان 1447. وبالنسبة لمستخدمي التقويم العبري، فإنها تقع في 14 آذار الثاني 5785. أما بالنسبة للمستخدمين اليابانيين في السياقات الرسمية، فتظهر كـ 15 مارس، ريوا 7.

تحدد أنظمة التقويم كيفية حساب المجتمعات للوقت. فهي تحدد متى تبدأ السنوات، وكيفية تنظيم الشهور، وكيفية ترقيم التواريخ. تدعم واجهة برمجة التطبيقات Intl.DateTimeFormat في جافا سكريبت أكثر من 17 نظامًا مختلفًا للتقويم، مما يتيح لك عرض التواريخ وفقًا للسياق الثقافي والديني لكل مستخدم.

يشرح هذا الدرس ماهية أنظمة التقويم، وسبب وجودها، وكيفية تنسيق التواريخ باستخدام أنظمة تقويم مختلفة في جافا سكريبت.

ما هي أنظمة التقويم

يحدد نظام التقويم القواعد لتنظيم وحساب الوقت. يحدد كل نظام متى تبدأ السنة، وكم عدد الشهور الموجودة، وكيفية ترقيم الأيام، وأي حقبة تعمل كنقطة بداية لترقيم السنوات.

التقويم الميلادي، المستخدم على نطاق واسع في السياقات الدولية، يحسب السنوات من تاريخ ميلاد المسيح المقدر. يستخدم 12 شهرًا بأطوال تتراوح من 28 إلى 31 يومًا، مما يخلق سنة من 365 يومًا مع سنوات كبيسة كل أربع سنوات.

تستخدم أنظمة التقويم الأخرى هياكل ونقاط بداية مختلفة. يستخدم التقويم الإسلامي 12 شهرًا قمريًا بإجمالي 354 أو 355 يومًا في السنة. يجمع التقويم العبري بين الشهور القمرية ومواءمة السنة الشمسية. يستخدم التقويم الياباني أسماء العصور التي تتغير مع عهد كل إمبراطور.

توجد هذه الأنظمة لأن الثقافات المختلفة طورت طرقها الخاصة لتتبع الوقت بناءً على الأهمية الدينية، والملاحظات الفلكية، والأحداث التاريخية. تستمر العديد من الثقافات في استخدام التقويمات التقليدية جنبًا إلى جنب مع التقويم الميلادي للمناسبات الدينية، والوثائق الرسمية، والفعاليات الثقافية.

لماذا تعتبر أنظمة التقويم مهمة للتطبيقات

التطبيقات التي تخدم مستخدمين من خلفيات ثقافية مختلفة تحتاج إلى عرض التواريخ بتنسيقات يفهمها هؤلاء المستخدمون ويتوقعونها. يجب أن يعرض تطبيق مواقيت الصلاة للمستخدمين المسلمين التواريخ بالتقويم الإسلامي. تطبيق للمناسبات الدينية اليهودية يحتاج إلى تواريخ التقويم العبري. التطبيقات المتعلقة بالحكومة اليابانية تتطلب تنسيق العصر الياباني.

استخدام نظام التقويم الخاطئ يخلق الارتباك ويمكن أن يجعل تطبيقك غير قابل للاستخدام للجمهور المستهدف. عرض تواريخ الأعياد الإسلامية في التقويم الميلادي يجبر المستخدمين على تحويل التواريخ يدويًا. إظهار أحداث التقويم العبري بتنسيق ميلادي يخفي الأهمية الدينية لتلك التواريخ.

يمثل كائن Date نفس اللحظة الزمنية بغض النظر عن نظام التقويم. ما يتغير هو كيفية تنسيق تلك اللحظة للعرض. تتيح لك JavaScript تنسيق أي تاريخ في أي نظام تقويم مدعوم دون منطق تحويل معقد.

استخدام خيار التقويم

يقبل مُنشئ Intl.DateTimeFormat خيار calendar الذي يحدد نظام التقويم المستخدم عند تنسيق التواريخ. قم بتمرير معرف التقويم كقيمة نصية.

const date = new Date('2025-03-15');

const gregorianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'gregory',
  dateStyle: 'long'
});

const islamicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(gregorianFormatter.format(date));
// الناتج: "March 15, 2025"

console.log(islamicFormatter.format(date));
// الناتج: "Ramadan 16, 1447 AH"

ينتج كائن Date نفسه سلاسل منسقة مختلفة بناءً على نظام التقويم. يعرض التقويم الميلادي 15 مارس 2025. يعرض التقويم الإسلامي 16 رمضان 1447 هـ.

يعمل خيار التقويم بشكل مستقل عن اللغة المحلية. يمكنك تنسيق التواريخ الإسلامية باللغة الإنجليزية أو العربية أو الفرنسية أو أي لغة أخرى من خلال الجمع بين خيار التقويم واللغة المحلية المناسبة.

const date = new Date('2025-03-15');

const arabicFormatter = new Intl.DateTimeFormat('ar-SA', {
  calendar: 'islamic',
  dateStyle: 'long'
});

const englishFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(arabicFormatter.format(date));
// الناتج: "١٦ رمضان ١٤٤٧ هـ"

console.log(englishFormatter.format(date));
// الناتج: "Ramadan 16, 1447 AH"

يحدد نظام التقويم التاريخ الذي سيتم عرضه، بينما تحدد اللغة المحلية لغة وقواعد التنسيق.

تنسيق التواريخ باستخدام التقويم الهجري

التقويم الهجري هو تقويم قمري يحتوي على 12 شهرًا من 29 أو 30 يومًا. السنة القمرية الكاملة تقريبًا 354 يومًا، وهي أقصر من السنة الميلادية الشمسية بحوالي 10 إلى 11 يومًا. هذا يتسبب في تراجع التواريخ الهجرية عبر التقويم الميلادي مع مرور الوقت.

تدعم جافا سكريبت العديد من أنواع التقويم الهجري. المعرف islamic يستخدم حسابًا قائمًا على خوارزمية. المعرف islamic-umalqura يستخدم تقويم أم القرى المستخدم في المملكة العربية السعودية. المعرف islamic-civil يستخدم حسابًا جدوليًا متوقعًا.

const date = new Date('2025-03-15');

const islamicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

const umalquraFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic-umalqura',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(islamicFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

console.log(umalquraFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

بالنسبة لمعظم التطبيقات التي تخدم المستخدمين المسلمين، فإن أي من أنواع التقويم الهجري هذه تعمل بشكل صحيح. الاختلافات بينها صغيرة وتهم بشكل أساسي لتحديد التواريخ الدقيقة للمناسبات الدينية.

تنسيق التواريخ باستخدام التقويم العبري

التقويم العبري هو تقويم قمري شمسي يستخدم للمناسبات الدينية اليهودية. يقوم بمزامنة الأشهر القمرية مع السنة الشمسية عن طريق إضافة شهر كبيس في سنوات معينة. هذا يحافظ على توافق الأعياد مع الفصول.

const date = new Date('2025-03-15');

const hebrewFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'hebrew',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(hebrewFormatter.format(date));
// Output: "14 Adar II 5785"

يستخدم التقويم العبري أسماء شهور عبرية مثل نيسان، إيار، سيفان، وتموز. في السنوات الكبيسة، يتضمن التقويم أدار الأول وأدار الثاني. عدد السنوات يمثل السنوات منذ الخلق وفقًا للتقاليد اليهودية.

يمكنك تنسيق التواريخ العبرية باللغة العبرية للمتحدثين الأصليين.

const date = new Date('2025-03-15');

const hebrewFormatter = new Intl.DateTimeFormat('he-IL', {
  calendar: 'hebrew',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(hebrewFormatter.format(date));
// Output: "י״ד באדר ב׳ ה׳תשפ״ה"

المخرجات باللغة العبرية تستخدم الحروف العبرية للأرقام والنص العبري لأسماء الشهور.

تنسيق التواريخ باستخدام التقويم الياباني

يستخدم التقويم الياباني أسماء العصور بناءً على الإمبراطور الحاكم. بدأ العصر الحالي، ريوا، في 1 مايو 2019، عندما اعتلى الإمبراطور ناروهيتو العرش. يتم ترقيم السنوات من بداية كل عصر.

const date = new Date('2025-03-15');

const japaneseFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'japanese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(japaneseFormatter.format(date));
// Output: "March 15, 7 Reiwa"

تظهر السنة كـ 7 Reiwa، مشيرة إلى السنة السابعة من عصر ريوا. يستخدم هذا التنسيق في المستندات اليابانية الرسمية والنماذج الحكومية والسياقات الرسمية.

التنسيق باللغة اليابانية ينتج تنسيق التاريخ الياباني التقليدي.

const date = new Date('2025-03-15');

const japaneseFormatter = new Intl.DateTimeFormat('ja-JP', {
  calendar: 'japanese',
  era: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(japaneseFormatter.format(date));
// Output: "令和7年3月15日"

يُظهر الناتج اسم العصر (令和)، والسنة (7年)، والشهر (3月)، واليوم (15日) باستخدام الأحرف اليابانية.

تنسيق التواريخ باستخدام التقويم الصيني

التقويم الصيني هو تقويم قمري شمسي يستخدم لتحديد العطلات الصينية التقليدية مثل رأس السنة الصينية ومهرجان منتصف الخريف. يجمع التقويم بين الأشهر القمرية والمصطلحات الشمسية.

const date = new Date('2025-03-15');

const chineseFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'chinese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(chineseFormatter.format(date));
// Output: "Second Month 16, 2025(yi-si)"

تتضمن سنة التقويم الصيني اسمًا دوريًا (yi-si في هذه الحالة) إلى جانب السنة الرقمية. تستخدم أسماء الأشهر تسميات رقمية مثل "الشهر الأول" و"الشهر الثاني".

يعرض تنسيق اللغة الصينية التاريخ باستخدام الأحرف الصينية.

const date = new Date('2025-03-15');

const chineseFormatter = new Intl.DateTimeFormat('zh-CN', {
  calendar: 'chinese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(chineseFormatter.format(date));
// Output: "2025乙巳年二月十六"

تنسيق التواريخ باستخدام التقويم الفارسي

التقويم الفارسي، الذي يُسمى أيضًا التقويم الهجري الشمسي، هو التقويم الرسمي لإيران وأفغانستان. يستخدم سنة شمسية مع 12 شهرًا، بهيكل مشابه للتقويم الميلادي ولكن بأطوال شهور مختلفة وبداية تاريخ مختلفة.

const date = new Date('2025-03-15');

const persianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'persian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(persianFormatter.format(date));
// Output: "Esfand 24, 1403 AP"

السنة الفارسية 1403 تتوافق مع السنة الميلادية 2025. الاختصار AP يعني Anno Persico.

تنسيق اللغة الفارسية يستخدم الأرقام والأسماء الشهور الفارسية.

const date = new Date('2025-03-15');

const persianFormatter = new Intl.DateTimeFormat('fa-IR', {
  calendar: 'persian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(persianFormatter.format(date));
// Output: "۲۴ اسفند ۱۴۰۳ ه‍.ش."

أنظمة التقويم الأخرى المدعومة

تدعم جافا سكريبت أنظمة تقويم إضافية لمختلف السياقات الثقافية والدينية.

التقويم buddhist يضيف 543 سنة إلى السنة الميلادية، ويستخدم في تايلاند وبلدان بوذية ثيرافادا أخرى.

const date = new Date('2025-03-15');

const buddhistFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'buddhist',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(buddhistFormatter.format(date));
// Output: "March 15, 2568 BE"

التقويم indian هو التقويم المدني الرسمي للهند.

const date = new Date('2025-03-15');

const indianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'indian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(indianFormatter.format(date));
// Output: "Phalguna 24, 1946 Saka"

التقويم coptic يستخدم من قبل الكنيسة القبطية الأرثوذكسية. التقويم ethiopic يستخدم في إثيوبيا.

const date = new Date('2025-03-15');

const copticFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'coptic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

const ethiopicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'ethiopic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(copticFormatter.format(date));
// Output: "Amshir 6, 1741 ERA1"

console.log(ethiopicFormatter.format(date));
// Output: "Yekatit 6, 2017 ERA1"

اكتشاف التقويمات المدعومة

تُرجع طريقة Intl.supportedValuesOf() مصفوفة تحتوي على جميع معرفات التقويم المدعومة من قبل تنفيذ جافا سكريبت.

const calendars = Intl.supportedValuesOf('calendar');
console.log(calendars);
// الناتج: ["buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic",
//          "gregory", "hebrew", "indian", "islamic", "islamic-civil",
//          "islamic-tbla", "islamic-umalqura", "japanese", "persian", "roc"]

تختلف القائمة الدقيقة حسب محرك جافا سكريبت وإصدار المتصفح. تُرجع الطريقة دائمًا التقويمات بترتيب أبجدي.

يمكنك التحقق مما إذا كان تقويم معين مدعومًا قبل استخدامه.

const calendars = Intl.supportedValuesOf('calendar');
const supportsIslamic = calendars.includes('islamic');

if (supportsIslamic) {
  const formatter = new Intl.DateTimeFormat('en-US', {
    calendar: 'islamic',
    dateStyle: 'long'
  });
  console.log(formatter.format(new Date()));
}

يمنع هذا الفحص حدوث أخطاء في البيئات التي قد لا تدعم جميع أنظمة التقويم.

تحديد التقويم باستخدام امتداد يونيكود

يمكنك تحديد نظام التقويم باستخدام مفتاح امتداد يونيكود في معرف اللغة المحلية بدلاً من استخدام معلمة الخيارات. أضف -u-ca- متبوعًا بمعرف التقويم إلى سلسلة اللغة المحلية.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US-u-ca-islamic', {
  dateStyle: 'long'
});

console.log(formatter.format(date));
// الناتج: "Ramadan 16, 1447 AH"

يخبر الامتداد -u-ca-islamic المنسق باستخدام التقويم الإسلامي. هذا ينتج نفس النتيجة كتمرير calendar: 'islamic' في كائن الخيارات.

عندما تحدد التقويم في كل من سلسلة اللغة المحلية وكائن الخيارات، يكون لكائن الخيارات الأولوية.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US-u-ca-islamic', {
  calendar: 'hebrew',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// الناتج: "14 Adar II 5785"

يتجاوز التقويم العبري من كائن الخيارات التقويم الإسلامي من سلسلة اللغة المحلية. استخدم معلمة الخيارات عندما تحتاج إلى التحكم برمجيًا في نظام التقويم. استخدم امتداد يونيكود عند العمل مع معرفات اللغة المحلية من تفضيلات المستخدم أو التكوين.

كيف تحدد اللغات المحلية التقويمات الافتراضية

عندما لا تحدد تقويمًا، يستخدم المنسق التقويم الافتراضي للغة المحلية. تستخدم معظم اللغات المحلية التقويم الميلادي كافتراضي، لكن بعض اللغات المحلية تستخدم إعدادات افتراضية مختلفة.

const date = new Date('2025-03-15');

const usFormatter = new Intl.DateTimeFormat('en-US', {
  dateStyle: 'long'
});

const saFormatter = new Intl.DateTimeFormat('ar-SA', {
  dateStyle: 'long'
});

const ilFormatter = new Intl.DateTimeFormat('he-IL', {
  dateStyle: 'long'
});

console.log(usFormatter.format(date));
// الناتج: "March 15, 2025"

console.log(saFormatter.format(date));
// الناتج: "١٦ رمضان ١٤٤٧ هـ"

console.log(ilFormatter.format(date));
// الناتج: "15 במרץ 2025"

تستخدم اللغة الإنجليزية الأمريكية التقويم الميلادي افتراضيًا. تستخدم اللغة العربية السعودية التقويم الإسلامي افتراضيًا. تستخدم اللغة العبرية الإسرائيلية التقويم الميلادي افتراضيًا على الرغم من وجود تقاليد قوية للتقويم العبري.

يمكنك اكتشاف التقويم الذي يستخدمه المنسق عن طريق استدعاء طريقة resolvedOptions().

const formatter = new Intl.DateTimeFormat('ar-SA', {
  dateStyle: 'long'
});

const options = formatter.resolvedOptions();
console.log(options.calendar);
// الناتج: "islamic-umalqura"

تظهر الخيارات المحلولة أن اللغة المحلية ar-SA تستخدم افتراضيًا متغير التقويم islamic-umalqura.

متى يجب تعيين التقويم بشكل صريح

دع اللغة المحلية تحدد نظام التقويم عند تنسيق التواريخ للعرض العام للمستخدمين بلغتهم المحلية. يتوقع المستخدمون من المملكة العربية السعودية تواريخ التقويم الإسلامي. يتوقع المستخدمون من اليابان تنسيق العصر الياباني في السياقات الرسمية. تتعامل الإعدادات الافتراضية للغة المحلية مع هذه التوقعات تلقائيًا.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat(navigator.language, {
  dateStyle: 'long'
});

console.log(formatter.format(date));
// يختلف الناتج حسب اللغة المحلية للمستخدم والتقويم الافتراضي

قم بتعيين التقويم بشكل صريح عندما تحتاج إلى عرض التواريخ في نظام تقويم محدد بغض النظر عن اللغة المحلية للمستخدم. يجب أن يعرض تطبيق مواقيت الصلاة دائمًا تواريخ التقويم الإسلامي. يجب أن يعرض تطبيق التقويم العبري دائمًا التواريخ العبرية.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat(navigator.language, {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// يعرض الناتج تاريخ التقويم الإسلامي بلغة المستخدم

هذا يضمن أن نظام التقويم يتطابق مع غرض تطبيقك مع احترام تفضيل لغة المستخدم.

قم بتعيين التقويم بشكل صريح عند عرض التواريخ في نظام تقويم مختلف عن الافتراضي للغة المحلية. قد ترغب في عرض التواريخ الميلادية للمستخدمين العبريين أو التواريخ الإسلامية للمتحدثين باللغة الإنجليزية.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'hebrew',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// الناتج: "14 Adar II 5785"

دمج التقويم مع خيارات أخرى

يعمل خيار التقويم مع جميع خيارات Intl.DateTimeFormat الأخرى. يمكنك دمجه مع dateStyle وtimeStyle وخيارات المكونات مثل weekday وmonth وخيارات أخرى مثل timeZone.

const date = new Date('2025-03-15T14:30:00');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'full',
  timeStyle: 'long',
  timeZone: 'America/New_York'
});

console.log(formatter.format(date));
// الناتج: "Saturday, Ramadan 16, 1447 AH at 2:30:00 PM EST"

يستخدم المنسق التقويم الإسلامي للتاريخ مع تطبيق نمط التاريخ الكامل ونمط الوقت الطويل والمنطقة الزمنية المحددة.

يمكنك أيضًا استخدام خيار التقويم مع خيارات المكونات الفردية.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'japanese',
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});

console.log(formatter.format(date));
// الناتج: "Saturday, March 15, 7 Reiwa"

يصبح خيار العصر (era) مهمًا بشكل خاص عند استخدام تقاويم مثل الياباني أو البوذي التي تستخدم أسماء العصور.

تنسيق نطاقات التواريخ باستخدام تقاويم مختلفة

تعمل طريقة formatRange() مع خيار التقويم لتنسيق نطاقات التواريخ في أي نظام تقويم.

const startDate = new Date('2025-03-15');
const endDate = new Date('2025-03-25');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(formatter.formatRange(startDate, endDate));
// الناتج: "Ramadan 16 – 26, 1447 AH"

يطبق المنسق التقويم الإسلامي على كلا التاريخين وينسقهما كنطاق، مع حذف المعلومات المكررة بذكاء.

إعادة استخدام المنسقات لتحسين الأداء

يتضمن إنشاء نسخ من Intl.DateTimeFormat معالجة بيانات اللغة المحلية ومعلومات نظام التقويم. عند تنسيق تواريخ متعددة بنفس التقويم واللغة المحلية، قم بإنشاء المنسق مرة واحدة وأعد استخدامه.

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

const dates = [
  new Date('2025-03-15'),
  new Date('2025-04-20'),
  new Date('2025-06-10')
];

dates.forEach(date => {
  console.log(formatter.format(date));
});
// الناتج:
// "Ramadan 16, 1447 AH"
// "Dhuʻl-Qiʻdah 22, 1447 AH"
// "Dhuʻl-Hijjah 15, 1447 AH"

يحسن هذا النهج الأداء عند تنسيق مصفوفات من التواريخ أو عرض العديد من الطوابع الزمنية في تطبيقك.

ما يجب تذكره

تحدد أنظمة التقويم كيفية تنظيم الثقافات للوقت وعده. تدعم جافا سكريبت أكثر من 17 نظام تقويم مختلف بما في ذلك التقويمات الإسلامية والعبرية واليابانية والصينية والفارسية والبوذية والقبطية من خلال واجهة برمجة التطبيقات Intl.DateTimeFormat.

حدد نظام التقويم باستخدام خيار calendar في كائن الخيارات أو بإضافة امتداد يونيكود إلى سلسلة اللغة المحلية. يحدد خيار التقويم نظام التقويم الذي يقوم بتنسيق التاريخ، بينما تحدد اللغة المحلية اللغة واتفاقيات التنسيق.

دع اللغة المحلية تحدد التقويم الافتراضي عند عرض التواريخ للاستخدام العام. قم بتعيين التقويم بشكل صريح عندما يتطلب تطبيقك نظام تقويم محدد بغض النظر عن تفضيلات اللغة المحلية للمستخدم.

يعمل خيار التقويم مع جميع خيارات تنسيق التاريخ الأخرى بما في ذلك الأنماط وخيارات المكونات والمناطق الزمنية ونطاقات التاريخ. أعد استخدام نماذج المنسق عند تنسيق تواريخ متعددة للحصول على أداء أفضل.