مقدمة إلى كائن DateTime
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 48 من 68.
بينما تعمل الدوال الإجرائية مثل date() و time() و strtotime() بشكل جيد لعمليات التاريخ الأساسية، يوفر PHP نهجاً أكثر قوة ومرونة من خلال كلاس DateTime. توفر هذه الطريقة الموجهة للكائنات تنظيماً أفضل، وبناء جملة أوضح، ووظائف أكثر تقدماً للتعامل مع التواريخ والأوقات.
تمثل فئة DateTime لحظة محددة في الوقت ككائن، والذي يمكنك بعد ذلك معالجته وتنسيقه باستخدام طرق (methods) متنوعة. وعلى عكس الدوال الإجرائية التي تعمل مع طوابع زمنية وسلاسل تنسيق منفصلة، يقوم كائن DateTime بتغليف كل من بيانات التاريخ/الوقت والعمليات التي يمكنك إجراؤها عليها.
<?php
$now = new DateTime();
echo $now; // يُخرج شيئاً مثل: 2024-03-15 14:30:25
?>إنشاء كائن DateTime جديد بدون أي معاملات يضبطه تلقائيًا على التاريخ والوقت الحاليين.
يجعل النهج الموجه للكائنات كودك أكثر قابلية للقراءة والصيانة، خاصة عندما تحتاج إلى إجراء عمليات متعددة على نفس التاريخ. ستجد هذا مفيداً بشكل خاص بينما تعمل مع حسابات تواريخ ومتطلبات تنسيق أكثر تعقيداً.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلستتلقى مدخلاً واحداً: سلسلة نصية للتاريخ بتنسيق Y-m-d H:i:s (مثال: 2024-03-15 14:30:25).
اقرأ سلسلة التاريخ المدخلة، وقم بإنشاء كائن DateTime باستخدام سلسلة التاريخ هذه كمعامل (parameter)، ثم اطبع كائن DateTime مباشرة.
عندما تقوم بإنشاء كائن DateTime باستخدام معامل سلسلة التاريخ، فإنه يمثل تلك اللحظة المحددة في الوقت بدلاً من التاريخ والوقت الحاليين. ببساطة استخدم echo لعرض الكائن.
تنسيق المدخلات: سطر واحد يحتوي على سلسلة تاريخ بتنسيق Y-m-d H:i:s (مثال: 2024-03-15 14:30:25)
المخرجات المتوقعة: كائن DateTime معروض بتنسيقه الافتراضي
ورقة مرجعية
توفر فئة DateTime نهجاً كائني التوجه للتعامل مع التواريخ والأوقات في PHP، مما يوفر تنظيماً ومرونة أفضل من الدوال الإجرائية.
إنشاء كائن DateTime للوقت الحالي:
$now = new DateTime();إنشاء كائن DateTime لتاريخ محدد:
$specificDate = new DateTime("2023-05-15");استخدم التابع format() لعرض التواريخ بتنسيقات محددة:
echo $now->format("Y-m-d H:i:s"); // 2024-03-15 14:30:25
echo $specificDate->format("Y-m-d"); // 2023-05-15جرّب بنفسك
<?php
// قراءة مدخلات سلسلة التاريخ
$dateString = trim(fgets(STDIN));
// TODO: إنشاء كائن DateTime باستخدام سلسلة التاريخ وطباعته
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة7التعامل مع التواريخ والأوقات
دالة 'date()'طوابع Unix الزمنية باستخدام 'time()'مقدمة إلى كائن DateTimeتنسيق كائنات DateTimeتعديل كائنات DateTimeمراجعة: حسابات التاريخ2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين