תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

פונקציות PHP שמטפלות בזמן

מחבר:
בתאריך:

מחשבים משתמשים בזמן unix, שסופר את הזמן בשניות מ-1 בינואר 1970. למה? ככה, זו קביעה שרירותית. בהתאם, הפונקציות של PHP שיודעות לטפל בזמנים מתבססות על זמן unix.

הפונקציה time()

כדי לראות את הזמן עכשיו בזמן unix נשתמש בפונקציה –time().

<?php
echo time();
?>

והתוצאה, נכון לרגע כתיבת המדריך:

1375167083

כמובן, כשאתם תריצו את הפונקציה תקבלו ערך שונה.

 

זמן unix מכונה גם חותמת זמן, ומאוד מקובל להשתמש בזה כשרוצים לציין זמן באופן מדויק. לדוגמה, כשמכניסים נתונים למסד הנתונים מאוד מקובל לתת להם חותמת זמן.

על חותמת הזמן אפשר לעשות כל מיני מניפולציות חשבוניות. לדוגמה, הזמן בעוד 4 ימים:

$in_4_days = time() + 60 * 60 * 24 * 4;

הוספנו לחותמת הזמן, 60 שניות בדקה כפול 60 דקות בשעה כפול 24 שעות ביממה כפול 4 יממות.

תרגום לזמן unix

ראינו שמחשבים משתמשים בזמן unix. לכן, אנחנו צריכים למצוא דרך לתרגם את מונחי הזמן שבהם אנחנו משתמשים לזמן unix. הדרך הראשונה, היא באמצעות הפונקציה mktime(). תחביר הפונקציה:

mktime(שנה, יום, חודש, שניות, דקות, שעה);

 

לדוגמה, 22:45:00 ב-30 ליולי 2013 ייכתב כך:

$time_stamp = mktime(22, 45, 0, 7, 30, 2013);
echo $time_stamp;

והתוצאה היא חותמת זמן שבה יכול המחשב להשתמש.

עם הפונקציה strtotime() הפורמט הוא פחות נוקשה, וניתן להזין מחרוזות חופשיות.

לדוגמה:

$time_stamp = strtotime("July 31 , 2013");
echo $time_stamp;

והתוצאה:

1375221600

לדוגמה:

$time_stamp = strtotime("January 1 1970 00:00:20 GMT");
echo $time_stamp;

והתוצאה: 20

 

אפשר גם להכניס מחרוזות יותר מעניינות, לדוגמה:

$time_stamp = strtotime("- 5 days");

 

תרגום זמן unix  לפורמט קריא

הפונקציה date() ממירה זמן unix לזמן קריא. לדוגמה, נבקש מ-PHP להציג את הזמן עכשיו בפורמט קריא:

echo date('l jS of F Y h:i:s A');

והתוצאה:

Tuesday 30th of July 2013 09:57:58 AM

l – היום בשבוע

j – היום בחודש

S – סיומת היום בחודש שמקובלת באנגלית

of – כל מה שבא אחרי ה- הוא מחרוזת פשוטה, שלא צריך להמיר אותה

F - שם החודש

Y – השנה בארבע ספרות

h – השעה עם 0 מובילים במידה וצריך

i ו- s הם הדקות והשניות

A – מציין אם זה AM/PM

אנחנו יכולים להשתמש בפונקציה date() כדי לקבל פורמט קריא של חותמת זמן unix. לצורך כך, נעביר לפונקציה date() פרמטר נוסף עם זמן ה-unix שאנו מעוניינים לתרגם.

לדוגמה:

echo date('d-F-Y', 1375167083);

והתוצאה:

30-July-2013

דוגמה נוספת:

echo $in_4_days = date('d-F-Y', time() + 60*60*24*4(;

והתוצאה:

03-August-2013

המדריך הבא בסדרת מדריכי ה-PHP מטפל ב פונקציות חשבוניות ב-PHP .

 

דוגמה שימושית: חישוב מספר הימים בין שני תאריכים

 

  • הפונקציה isDatetime בודקת האם המחרוזת שמועברת לפונקציה היא אכן datetime.
  • הפונקציה deltaInDays מחשבת את מספר הימים בין שני תאריכים על ידי זה שהיא הופכת את התאריכים לחותמות זמן, מחשבת את ההפרש ביניהם בשניות ומחלקת במספר השניות ביממה כדי לקבל את מספר הימים.
// can the string be converted to timestamp?
function isDatetime($string)
{
  return (strtotime($string));
}

// delta in days between two dates.
function deltaInDays($time1,$time2)
{
  // if even one of the dates is not valid, return false.
  if (!isDatetime($time1) || !isDatetime($time2)) return false; 
	
  // delta in seconds between the two dates
  $delta = strtotime($time2) - strtotime($time1);	
		
  // divide in the number of seconds in a day,
   //  and then round before return
  return round($delta/(60*60*24));
}

echo deltaInDays('02-04-2016','01-01-2017');//274

לכל מדריכי ה-PHP

 

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.

למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.

שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.

המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

איך אומרים בעברית אינטרנט?