انتقل إلى محتوى الدرس

Configuring Timezones with DateTimeZone ضبط وتحويل المناطق الزمنية عبر DateTimeZone

احسب الفروق الزمنية بدقة، وأضف واطرح الفترات عبر DateTimeImmutable وDateInterval، وحوّل التوقيت بين المناطق الزمنية المختلفة في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تخزن تطبيقات PHP الاحترافية الأوقات بالتوقيت العالمي UTC، ثم تحولها عند العرض إلى المنطقة الزمنية للمستخدم عبر timezone_open() وdate_timezone_set().

  • اضبط المنطقة الزمنية الافتراضية للسكريبت عند بدء التشغيل عبر date_default_timezone_set("UTC") وتحقق منها عبر date_default_timezone_get().
  • أنشئ كائن المنطقة الزمنية بالدالة timezone_open("Asia/Riyadh") ومرّره إلى date_create_immutable() أو date_timezone_set().
  • بما أن date_create_immutable() تنشئ تاريخاً غير قابل للتعديل المباشر، فإن date_timezone_set($dt, $tz) تُرجع نسخة جديدة محولة دون تغيير الأصل.

يتم تحويل اللحظة الزمنية نفسها (12:00 +00:00 بتوقيت UTC) بدقة إلى 15:00 +03:00 بتوقيت الرياض.

مخطط توضيحي: محاكي الفترات الزمنية وحساب الفروق والمناطق الزمنية في PHP
PHP
<?php
date_default_timezone_set('UTC');
$utc = date_create_immutable('2026-05-01 12:00:00', timezone_open('UTC'));
$riyadh = date_timezone_set($utc, timezone_open('Asia/Riyadh'));
echo "UTC: " . date_format($utc, 'H:i P') . "\n";
echo "Riyadh: " . date_format($riyadh, 'H:i P') . "\n";