شرح صفوف ومحتوى الفقرة
تخزن تطبيقات 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
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";