تنسيق كائنات DateTime
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 49 من 68.
الآن بعد أن أصبح لديك كائن DateTime، تحتاج إلى تحويله إلى تنسيق نصي (string) قابل للقراءة. تُعد الوسيلة format() هي أداتك لتحويل كائن DateTime إلى أي تنسيق تاريخ أو وقت تحتاجه لأغراض العرض.
تستخدم طريقة format() نفس أحرف التنسيق تماماً التي تعلمتها مع دالة date(). هذا الاتساق يجعل من السهل تطبيق معرفتك الحالية على كائنات DateTime. تقوم باستدعاء الطريقة مباشرة على كائن DateTime الخاص بك وتمرير سلسلة التنسيق كمعامل.
<?php
$now = new DateTime();
echo $now->format("Y-m-d"); // المخرجات: 2024-03-15
echo $now->format("H:i:s"); // المخرجات: 14:30:25
echo $now->format("l, F j, Y"); // المخرجات: Friday, March 15, 2024
?>يوفر النهج الموجه للكائنات باستخدام format() تنظيمًا أفضل للكود، خاصةً عندما تعمل مع نفس التاريخ عدة مرات. حيث تقوم بإنشاء كائن DateTime مرة واحدة ويمكنك تنسيقه بطرق مختلفة عبر الكود الخاص بك دون الحاجة إلى استدعاء الدوال الإجرائية بشكل متكرر.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلستتلقى مدخلين: سلسلة نصية للتاريخ بالتنسيق Y-m-d H:i:s وسلسلة نصية للتنسيق. المدخل الأول هو تاريخ ووقت محدد (مثال: 2024-03-15 14:30:25)، والمدخل الثاني هو سلسلة نصية للتنسيق تحدد كيفية عرض التاريخ (مثال: l, F j, Y).
اقرأ كلا المدخلين، وأنشئ كائن DateTime باستخدام سلسلة التاريخ النصية، واستخدم التابع format() لتحويل كائن DateTime وفقاً لسلسلة التنسيق المقدمة، واطبع النتيجة المنسقة.
تنسيق المدخلات:
- السطر الأول: سلسلة نصية للتاريخ بالتنسيق
Y-m-d H:i:s(مثال:2024-03-15 14:30:25) - السطر الثاني: سلسلة نصية للتنسيق (مثال:
l, F j, YأوH:i:sأوY-m-d)
المخرجات المتوقعة: التاريخ منسقاً وفقاً لسلسلة التنسيق المقدمة
ورقة مرجعية
تقوم طريقة format() بتحويل كائن DateTime إلى تنسيق نصي قابل للقراءة باستخدام نفس أحرف التنسيق المستخدمة في دالة date():
<?php
$now = new DateTime();
echo $now->format("Y-m-d"); // المخرجات: 2024-03-15
echo $now->format("H:i:s"); // المخرجات: 14:30:25
echo $now->format("l, F j, Y"); // المخرجات: Friday, March 15, 2024
?>يتيح لك النهج كائني التوجه (object-oriented) إنشاء كائن DateTime مرة واحدة وتنسيقه بطرق متعددة دون استدعاء الدوال الإجرائية بشكل متكرر.
جرّب بنفسك
<?php
// قراءة سلسلة التاريخ
$dateString = trim(fgets(STDIN));
// قراءة سلسلة التنسيق
$formatString = trim(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه
// إنشاء كائن DateTime وتنسيقه وفقًا لسلسلة التنسيق
// إخراج التاريخ المنسق
echo $formattedDate;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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'مراجعة: ترتيب لوحة المتصدرين