كيفية الحصول على السنة الحالية في PHP: دليل شامل مع أمثلة

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

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

ابدأ الدورة

مقدمة: لماذا سؤال "كيفية الحصول على السنة الحالية في PHP؟" شائع جدًا؟



قد يبدو الأمر بسيطًا؟ مجرد أخذ وعرض السنة الحالية. لكن هذا السؤال حصل على مئات الآلاف من المشاهدات على Stack Overflow. لماذا؟ لأن وراء هذه البساطة الظاهرية تكمن عشرات التفاصيل الدقيقة: من الاختلافات بين وقت الخادم والمنطقة الزمنية للمستخدم إلى التنسيق الصحيح للإعدادات المحلية المختلفة.



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



هيا بنا!



الطريقة رقم 1: الدالة التقليدية date()



الطريقة الأكثر شيوعًا وبساطة للحصول على السنة الحالية في PHP هي استخدام الدالة date(). تقوم بإرجاع سلسلة منسقة تحتوي على التاريخ والوقت الحاليين للخادم.



<?php// الحصول على السنة الحالية (4 أرقام)$year = date('Y');echo "السنة الحالية هي $year"; // سيطبع: السنة الحالية هي 2026?>


ماذا يحدث هنا؟ الرمز Y هو تنسيق يعني "السنة بتنسيق 4 أرقام". إذا كنت بحاجة إلى السنة بصيغة آخر رقمين (24، 25، 26)، استخدم y:



<?phpecho date('y'); // 26?>


لماذا date('Y') جيدة؟

  • البساطة: سطر واحد من الكود - وينتهي الأمر.
  • المرونة: يمكن دمجها مع تنسيقات أخرى: date('Y-m-d') - التاريخ، date('Y-m-d H:i:s') - التاريخ مع الوقت.
  • السرعة: تعمل الدالة بسرعة كبيرة، ولا تتطلب إنشاء كائنات.


متى يجب الحذر؟

تستخدم الدالة date() المنطقة الزمنية المحددة في إعدادات PHP (التوجيه date.timezone في ملف php.ini). إذا كانت المنطقة الزمنية على الخادم غير صحيحة، فإن الحصول على السنة الحالية في PHP قد يعطي نتيجة خاطئة في ليلة رأس السنة.



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



<?phpdate_default_timezone_set('Europe/Moscow');echo date('Y'); // الآن بالتأكيد 2026?>


الطريقة رقم 2: النهج الكائني - فئة DateTime



إذا كنت تكتب كودًا حديثًا في PHP (الإصدار 5.2+)، فمن الأفضل استخدام فئة DateTime. إنها أداة أكثر قوة ومرونة للعمل مع التواريخ.



<?php$now = new DateTime();$year = $now->format('Y');echo "السنة الحالية: $year";?>


مزايا DateTime:

  • النموذج الكائني: يمكن بسهولة التعامل مع التواريخ (إضافة أيام، أشهر، مقارنة).
  • إدارة واضحة للمنطقة الزمنية: قم بتمرير المنطقة الزمنية في المُنشئ.
  • التدويل: سهولة توطين التواريخ.


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



<?php$timezone = new DateTimeZone('Europe/London');$now = new DateTime('now', $timezone);echo $now->format('Y'); // السنة بتوقيت غرينتش?>


الطريقة رقم 3: استخدام الدالة strftime() (قديمة ولكنها لا تزال قيد الاستخدام)



كانت الدالة strftime() في يوم من الأيام هي المعيار لعرض التواريخ المترجمة. تم إهمالها في PHP 8.1، ولكن قد تصادفها في المشاريع القديمة.



<?phpsetlocale(LC_TIME, 'ar_SA.UTF-8');echo strftime('%Y'); // 2026?>


هام: لا تستخدم strftime() في المشاريع الجديدة. بدلاً من ذلك، استخدم IntlDateFormatter للترجمة.



الطريقة رقم 4: كيفية الحصول على السنة من تاريخ عشوائي؟



غالبًا ما لا تحتاج فقط إلى الحصول على السنة الحالية في PHP، بل إلى استخراجها من تاريخ موجود بالفعل

المدونات

توصيات الكتب