🔹 6. DateInterval
✅ ما هي؟
كائن يمثل فرق زمني (مثل: يوم، شهر، سنة) ويُستخدم مع DateTime
لإضافة أو طرح مدة زمنية.
✅ الإنشاء:
$interval = new DateInterval("P2Y4M6D"); // 2 سنة و 4 شهور و 6 أيام
PHP✅ الحرف P
اختصار لـ “Period”، وتُستخدم الأحرف التالية:
- Y = سنوات
- M = شهور
- D = أيام
- T = بداية الجزء الخاص بالوقت
- H = ساعات
- M = دقائق
- S = ثواني
✅ أمثلة:
$date = new DateTime("2025-01-01");
$interval = new DateInterval("P1M"); // شهر واحد
$date->add($interval); // إضافة
echo $date->format("Y-m-d"); // 2025-02-01
PHP$date->sub(new DateInterval("P10D")); // طرح 10 أيام
echo $date->format("Y-m-d"); // 2025-01-22
PHP🔹 7. DateTimeZone
✅ ما هي؟
كائن يُستخدم لتحديد المنطقة الزمنية لتاريخ معين.
✅ الاستخدام:
$dt = new DateTime("now", new DateTimeZone("Asia/Damascus"));
echo $dt->format("Y-m-d H:i:s");
PHP✅ تغيير المنطقة الزمنية لاحقًا:
$dt->setTimezone(new DateTimeZone("America/New_York"));
echo $dt->format("Y-m-d H:i:s");
PHP✅ قائمة المناطق الزمنية:
print_r(DateTimeZone::listIdentifiers());
PHP🔹 8. date_default_timezone_set()
و get()
✅ تعيين منطقة زمنية افتراضية:
date_default_timezone_set("Asia/Riyadh");
PHP✅ معرفة المنطقة الحالية:
echo date_default_timezone_get(); // Asia/Riyadh
PHP📌 يُفضل ضبط المنطقة الزمنية في بداية ملفاتك، أو في ملف config رئيسي في مشروعك.
🔹 9. مقارنة التواريخ (DateTime::diff)
✅ استخدام diff()
لحساب الفرق بين تاريخين:
$start = new DateTime("2024-05-01");
$end = new DateTime("2025-06-01");
$diff = $start->diff($end);
echo $diff->y . " سنة و" . $diff->m . " شهر و" . $diff->d . " يوم";
PHP✅ استخدام invert
:
if ($diff->invert == 1) {
echo "التاريخ الأول بعد التاريخ الثاني";
} else {
echo "التاريخ الأول قبل أو يساوي التاريخ الثاني";
}
PHP🔹 10. sleep() و usleep() ⏱️
✅ sleep(seconds)
توقف تنفيذ السكربت لعدد معين من الثواني.
echo "انتظر 3 ثوانٍ...<br>";
sleep(3);
echo "تم الاستئناف!";
PHP✅ usleep(microseconds)
نفس الفكرة ولكن بالميكروثانية (1 ثانية = 1,000,000 ميكروثانية).
usleep(500000); // نصف ثانية
PHP🔹 11. التحقق من صلاحية تواريخ
✅ باستخدام checkdate()
:
if (checkdate(2, 29, 2025)) {
echo "تاريخ صحيح";
} else {
echo "تاريخ غير صالح";
}
PHP- 📌 تستخدم للتحقق من تواريخ مثل 29 فبراير أو 31 أبريل.
✅ المواضيع الأساسية التي غطيناها:
رقم | الموضوع | ✅ تمت تغطيته |
---|---|---|
1️⃣ | date() و time() | ✅ |
2️⃣ | strtotime() | ✅ |
3️⃣ | mktime() | ✅ |
4️⃣ | DateTime | ✅ |
5️⃣ | DateInterval | ✅ |
6️⃣ | DateTimeZone | ✅ |
7️⃣ | date_default_timezone_set() و get() | ✅ |
8️⃣ | diff() للمقارنة | ✅ |
9️⃣ | sleep() و usleep() | ✅ |
🔟 | checkdate() | ✅ |
🟡 مواضيع إضافية (اختيارية):
الموضوع | الفائدة |
---|---|
✅ getdate() | استخراج تفاصيل التاريخ في مصفوفة (يُستخدم أحيانًا بدل date() ) |
✅ localtime() | مثل getdate() ولكن بصيغة عددية فقط |
✅ microtime() | يعطي الوقت بدقة ميكروثانية (مفيد للقياس والأداء) |
✅ strftime() (مهمل) | تنسيق التاريخ حسب المنطقة الزمنية – لكن تم استبداله لاحقًا |
✅ توابع الأداء مثل قياس وقت التنفيذ باستخدام microtime(true) |