المناطق الزمنية وUTC
تعاملوا مع UTC والتوقيت المحلي بطريقة صحيحة.
المناطق الزمنية وUTC درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
التوقيت المحلي مقابل UTC
يمثل التاريخ لحظة مطلقة واحدة، ولكن يمكن قراءته وفق التوقيت المحلي أو UTC، وهو التوقيت المرجعي العالمي. وتتوفر دوال القراءة بكلا الشكلين.
const d = new Date(Date.UTC(2024, 0, 15, 12, 0, 0))
console.log(d.getUTCHours())دوال قراءة UTC
تقرأ الدوال التي تبدأ أسماؤها بـ UTC، مثل getUTCFullYear وgetUTCHours، مكونات التاريخ وفق منطقة UTC بغض النظر عن الجهاز.
const d = new Date(Date.UTC(2024, 5, 15, 8, 30, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCHours())
console.log(d.getUTCMinutes())getTimezoneOffset
تعيد getTimezoneOffset الفرق بين التوقيت المحلي وUTC بالدقائق. وتشير القيمة الموجبة إلى أن التوقيت المحلي متأخر عن UTC.
const d = new Date()
const offset = d.getTimezoneOffset()
console.log(typeof offset)إشارة الفرق الزمني
تأتي إشارة الفرق الزمني بعكس ما يتوقعه كثيرون: فالمنطقة المتقدمة على UTC تعطي فرقًا زمنيًا سالبًا. حوّل الدقائق إلى ساعات بقسمتها على 60.
const offsetMinutes = 120
const hours = offsetMinutes / 60
console.log(hours)إنشاء تواريخ وفق UTC
تقبل Date.UTC وسيطات المكونات نفسها التي يقبلها المُنشئ، لكنها تفسرها وفق UTC وتعيد طابعًا زمنيًا يمكنك تمريره إلى new Date.
const ts = Date.UTC(2024, 0, 1, 0, 0, 0)
const d = new Date(ts)
console.log(d.getUTCHours())دوال تعيين UTC
تعدّل دوال التعيين مثل setUTCHours التاريخ وفق منطقة UTC، وهي تقابل دوال التعيين المحلية لكنها تستند إلى UTC.
const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
d.setUTCHours(15)
console.log(d.getUTCHours())الحرف Z في سلاسل ISO
يعني الحرف Z في نهاية سلسلة ISO أن الوقت وفق UTC، ويُسمى أيضًا توقيت Zulu. أما السلاسل التي لا تحتوي عليه فقد تُفسر وفق التوقيت المحلي.
const d = new Date("2024-01-15T10:00:00Z")
console.log(d.getUTCHours())اللحظة نفسها وقراءات مختلفة
تصف دوال القراءة المحلية ودوال قراءة UTC اللحظة نفسها وفق منطقتين زمنيتين مختلفتين، لذلك قد تختلف قيم الساعات بينهما بمقدار الفرق الزمني.
const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())التخزين وفق UTC
من أفضل الممارسات الشائعة تخزين جميع التواريخ وفق UTC وتحويلها إلى التوقيت المحلي عند العرض فقط، مما يتجنب الالتباس بين المناطق المختلفة.
const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.toISOString())تحديد منطقة زمنية
تقبل دوال التنسيق خيارًا باسم timeZone، بحيث يمكنك عرض لحظة وفق منطقة زمنية محددة مثل UTC بشكل صريح.
const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
const text = d.toLocaleString("en-US", { timeZone: "UTC" })
console.log(typeof text)تجنب المشكلات الشائعة
يؤدي المزج بين الدوال المحلية ودوال UTC للتاريخ نفسه إلى أخطاء دقيقة. اختر نموذجًا واحدًا لكل عملية حسابية وطبّقه باستمرار.
const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCMonth())اختبار سريع
اختبر معرفتك بالمناطق الزمنية.
مراجعة
مراجعة: اقرأ التواريخ واكتبها وفق التوقيت المحلي أو UTC باستمرار.
- تعمل دوال قراءة UTC وتعيينه وفق المنطقة العالمية
- تعيد getTimezoneOffset القيمة بالدقائق مع عكس الإشارة
- تشير اللاحقة Z إلى أن سلسلة ISO تستخدم UTC
- خزّن وفق UTC واعرض وفق التوقيت المحلي
const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())الأسئلة الشائعة
هل درس «المناطق الزمنية وUTC» مجاني؟
نعم — نص درس «المناطق الزمنية وUTC» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «المناطق الزمنية وUTC»؟
تعاملوا مع UTC والتوقيت المحلي بطريقة صحيحة. تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «المناطق الزمنية وUTC»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء التواريخ وقراءتها
- الطوابع الزمنية وحسابات التاريخ
- تنسيق التواريخ
- المناطق الزمنية وUTC