Menu
Coddy logo textTech

שינוי אובייקטים מסוג DateTime

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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' כדי לבצע חישובי תאריכים מתוחכמים, תוך שמירה על קוד ברור וקל לתחזוקה.

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

נסו בעצמכם

<?php
// קראו את מחרוזת התאריך
$dateString = trim(fgets(STDIN));

// קראו את מחרוזת השינוי
$modificationString = trim(fgets(STDIN));

// TODO: כתבו את הקוד שלכם למטה
// צרו אובייקט DateTime, החילו את השינוי ועצבו את התוצאה


// הציגו את התאריך לאחר השינוי
echo $modifiedDate;
?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין