נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

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

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

פונקציות 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

 

 

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

 

= 3 + 7