מבוא לאובייקט DateTime
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 48 מתוך 68.
בעוד שפונקציות פרוצדורליות כמו date(), time() ו־strtotime() מתאימות היטב לפעולות בסיסיות עם תאריכים, PHP מציעה גישה חזקה וגמישה יותר באמצעות המחלקה DateTime. השיטה מונחית העצמים הזו מספקת ארגון טוב יותר, תחביר ברור יותר ופונקציונליות מתקדמת יותר לעבודה עם תאריכים ושעות.
המחלקה DateTime מייצגת רגע מסוים בזמן כאובייקט, שאותו אפשר לאחר מכן לשנות ולעצב באמצעות שיטות שונות. בניגוד לפונקציות פרוצדורליות שעובדות עם חותמות זמן ומחרוזות עיצוב נפרדות, אובייקט 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 באמצעות מחרוזת התאריך והדפס אותו
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'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'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין