Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تعديل كائنات DateTime

جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 50 من 68.

بمجرد حصولك على كائن DateTime، غالباً ما ستحتاج إلى تغييره لتمثيل لحظة زمنية مختلفة. تسمح لك طريقة modify() بإضافة أو طرح الوقت من كائن DateTime الخاص بك باستخدام تعبيرات اللغة الطبيعية، مما يجعل حسابات التاريخ بديهية وسهلة القراءة.

تقبل الطريقة modify() نفس أنواع السلاسل النصية التي تعمل مع strtotime()، مثل '+1 day' أو '-2 weeks' أو 'next Friday'. وعلى عكس إنشاء كائن جديد في كل مرة، تقوم هذه الطريقة بتعديل كائن DateTime الموجود مباشرة، مما يجعله فعالاً لعمليات التاريخ المتسلسلة.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // تاريخ اليوم

$date->modify('+1 week');
echo $date->format('Y-m-d');  // بعد أسبوع من اليوم

$date->modify('-3 days');
echo $date->format('Y-m-d');  // بعد 4 أيام من اليوم
?>

يوفر لك هذا النهج مرونة قوية لإجراء حسابات التاريخ. يمكنك ربط تعديلات متعددة أو استخدام تعبيرات معقدة مثل '+2 months -1 day' لإجراء عمليات حسابية معقدة للتاريخ مع الحفاظ على وضوح الكود وقابليته للصيانة.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

ستتلقى مدخلين: سلسلة نصية للتاريخ بتنسيق Y-m-d H:i:s وسلسلة نصية للتعديل. المدخل الأول هو تاريخ ووقت محدد (مثال: 2024-03-15 14:30:25)، والمدخل الثاني هو تعبير تعديل مثل +1 week أو -3 days أو +2 months.

اقرأ كلا المدخلين، وأنشئ كائن DateTime باستخدام سلسلة التاريخ النصية، واستخدم التابع modify() لتطبيق تعبير التعديل على كائن DateTime، ثم اطبع التاريخ المعدل بتنسيق Y-m-d H:i:s.

تنسيق المدخلات:

  • السطر الأول: سلسلة نصية للتاريخ بتنسيق Y-m-d H:i:s (مثال: 2024-03-15 14:30:25)
  • السطر الثاني: سلسلة نصية للتعديل (مثال: +1 week أو -3 days أو +2 months)

المخرجات المتوقعة: التاريخ المعدل منسقاً كـ Y-m-d H:i:s

ورقة مرجعية

تسمح لك الطريقة modify() بإضافة أو طرح الوقت من كائن DateTime باستخدام تعبيرات اللغة الطبيعية:

<?php
$date = new DateTime();
$date->modify('+1 week');     // إضافة أسبوع واحد
$date->modify('-3 days');     // طرح ثلاثة أيام
$date->modify('+2 months -1 day'); // تعبيرات معقدة
?>

تقوم الطريقة بتعديل كائن DateTime الحالي مباشرةً وتقبل نفس تنسيقات السلاسل النصية مثل strtotime()، مثل '+1 day'، أو '-2 weeks'، أو 'next Friday'.

جرّب بنفسك

<?php
// قراءة سلسلة التاريخ
$dateString = trim(fgets(STDIN));

// قراءة سلسلة التعديل
$modificationString = trim(fgets(STDIN));

// TODO: اكتب الكود الخاص بك أدناه
// إنشاء كائن DateTime، وتطبيق التعديل، وتنسيق النتيجة


// إخراج التاريخ المعدل
echo $modifiedDate;
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow