مقدمة إلى كائن DateTime
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 48 من 68.
بينما تعمل الدوال الإجرائية مثل date() و time() و strtotime() بشكل جيد لعمليات التاريخ الأساسية، تقدم PHP نهجاً أكثر قوة ومرونة من خلال فئة DateTime. توفر هذه الطريقة الموجهة للكائنات تنظيماً أفضل، وبنية أوضح، ووظائف أكثر تقدماً للتعامل مع التواريخ والأوقات.
تمثل فئة DateTime لحظة زمنية محددة ككائن، والذي يمكنك بعد ذلك معالجته وتنسيقه باستخدام طرق (methods) متنوعة. وعلى عكس الدوال الإجرائية التي تعمل مع طوابع زمنية وسلاسل تنسيق منفصلة، فإن كائن DateTime يغلف كلاً من بيانات التاريخ/الوقت والعمليات التي يمكنك إجراؤها عليها.
<?php
$now = new DateTime();
echo $now->format('Y-m-d H:i:s'); // يُخرج شيئاً مثل: 2024-03-15 14:30:25
?>إنشاء كائن DateTime جديد بدون أي معاملات يضبطه تلقائياً على التاريخ والوقت الحاليين.
يجعل النهج الموجه للكائنات كودك أكثر قابلية للقراءة والصيانة، خاصة عندما تحتاج إلى إجراء عمليات متعددة على نفس التاريخ. ستجد هذا مفيداً بشكل خاص بينما تعمل مع حسابات تاريخ ومتطلبات تنسيق أكثر تعقيداً.
التحدي
سهلستتلقى مدخلاً واحداً: سلسلة تاريخ بتنسيق Y-m-d H:i:s (مثال: 2024-03-15 14:30:25).
اقرأ سلسلة تاريخ المدخلات، وأنشئ كائن DateTime باستخدام سلسلة التاريخ هذه كمعامل، واطبع كائن DateTime مباشرةً.
عند إنشاء كائن DateTime باستخدام معامل سلسلة تاريخ، فإنه يمثل تلك اللحظة المحددة من الوقت بدلاً من التاريخ والوقت الحاليين. ما عليك سوى استخدام echo للكائن لعرضه.
تنسيق المدخلات: سطر واحد يحتوي على سلسلة تاريخ بتنسيق Y-m-d H:i:s (مثال: 2024-03-15 14:30:25)
المخرجات المتوقعة: التاريخ والوقت منسقين كـ Y-m-d H:i:s
جرّب بنفسك
<?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'مراجعة: ترتيب لوحة المتصدرين