العمل مع التواريخ والوقت في PHP: من الألف إلى الياء - دليل شامل

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع التواريخ والوقت في PHP: من الألف إلى الياء

\n\n

العمل مع التواريخ والوقت من أكثر المهام شيوعًا في تطوير الويب. سواء كان عرض تاريخ النشر، حساب عمر المستخدم، تسجيل الأحداث أو إنشاء تقويم - توفر PHP أدوات قوية ومرنة. في هذه المقالة سنغطي جميع الجوانب: من الدوال البسيطة إلى النهج الكائني مع فئة DateTime، بما في ذلك المناطق الزمنية والأمثلة العملية.

\n\n

الدوال الأساسية: date() و time()

\n\n

مجموعة الدوال الأساسية للعمل مع التواريخ تشمل time() و date(). ترجع الدالة time() الطابع الزمني الحالي لنظام Unix (عدد الثواني منذ 1 يناير 1970). تقوم الدالة date() بتنسيق هذا الطابع إلى شكل قابل للقراءة البشرية.

\n\n

الحصول على التاريخ والوقت الحاليين

\n

أبسط طريقة لعرض التاريخ الحالي:

\n
<?php\necho date('Y-m-d H:i:s'); // 2025-04-10 15:30:45\n?>
\n\n

التنسيق باستخدام date()

\n

تأخذ الدالة date() معلمتين: التنسيق وطابع زمني اختياري. أشهر رموز التنسيق:

\n
    \n
  • d — يوم الشهر (01–31)
  • \n
  • m — الشهر (01–12)
  • \n
  • Y — السنة بتنسيق 4 أرقام
  • \n
  • H — الساعات بتنسيق 24 ساعة (00–23)
  • \n
  • i — الدقائق (00–59)
  • \n
  • s — الثواني (00–59)
  • \n
\n

مثال للإخراج مع نص عربي:

\n
<?php\necho 'اليوم ' . date('d.m.Y') . '، الوقت ' . date('H:i');\n// اليوم 10.04.2025، الوقت 15:30\n?>
\n\n

فئة DateTime: النهج الكائني

\n

للعمليات المعقدة يُوصى باستخدام فئة DateTime. فهي بديهية، تدعم المناطق الزمنية وتُبسط التعامل مع التواريخ.

\n\n

إنشاء كائن DateTime

\n

يمكن إنشاء الكائن بعدة طرق:

\n
<?php\n// التاريخ والوقت الحاليين\n$now = new DateTime();\necho $now->format('Y-m-d H:i:s'); // 2025-04-10 15:30:45\n\n// تاريخ محدد\n$date = new DateTime('2025-12-31 23:59:59');\necho $date->format('d.m.Y'); // 31.12.2025\n\n// باستخدام تنسيق نسبي\n$nextWeek = new DateTime('+1 week');\necho $nextWeek->format('Y-m-d');\n?>
\n\n

تعديل التاريخ: modify()

\n

تسمح الطريقة modify() بإضافة أو طرح الفترات بسهولة:

\n
<?php\n$date = new DateTime('2025-04-10');\n$date->modify('+10 days');\necho $date->format('d.m.Y'); // 20.04.2025\n\n$date->modify('-1 month');\necho $date->format('d.m.Y'); // 20.03.2025\n?>
\n\n

العمل مع المناطق الزمنية

\n

تجاهل المناطق الزمنية خطأ شائع. تقدم PHP طريقتين للتحكم بها: عالميًا عبر date_default_timezone_set() ومحليًا عبر كائن DateTimeZone.

\n\n

الإعداد العالمي

\n

قم بتعيين المنطقة الزمنية في بداية السكريبت:

\n
<?php\ndate_default_timezone_set('Europe/Moscow');\necho date('H:i'); // الوقت بتوقيت موسكو\n?>
\n\n

الإعداد المحلي لـ DateTime

\n

يمكن أن يكون لكل كائن DateTime منطقته الزمنية الخاصة:

\n
<?php\n$timezone = new DateTimeZone('Asia/Vladivostok');\n$date = new DateTime('now', $timezone);\necho $date->format('H:i'); // الوقت في فلاديفوستوك\n\n// تغيير المنطقة لكائن موجود\n$date->setTimezone(new DateTimeZone('Europe/Moscow'));\necho $date->format('H:i'); // الوقت المحول\n?>
\n\n

الفرق بين التواريخ: DateInterval

\n

تسمح فئة DateInterval والطريقة diff() بحساب الفرق بين تاريخين.

\n\n

حساب الفرق

\n
<?php\n$start = new DateTime('2025-01-01');\n$end = new DateTime('2025-12-31');\n$interval = $start->diff($end);\n\necho $interval->days; // 364 (العدد                

المدونات

توصيات الكتب