הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   חישוב זמנים TimeStamp בPHP (https://hosts.co.il/forums/showthread.php?t=42019)

TopSite 22-03-07 23:44

חישוב זמנים TimeStamp בPHP
 
אני רוצה לחשב את הזמנים של:
אתמול ב24:00, עכשיו, היום ב24:00.
אני עושה את החישוב באמצעות:
קוד:

$round_numerator=60 * 60 * 24;
$now=time();

עכשיו:
קוד:

$now
אתמול ב24:00:
קוד:

( round ( $now / $round_numerator ) * $round_numerator )-60 * 60 * 12);
היום ב24:00:
קוד:

( round ( $now / $round_numerator ) * $round_numerator )+(60 * 60 * 24);
אני אשמח לדעת למה אני מקבל כל הזמן את השעה 2:00 במקום 24:00 בשרת ובבית אני מקבל את התוצאה הנכונה (24:00).

אגב, אני מודע לכך שאפשר לעשות את החישוב כך:
קוד:

    $startOfDay = mktime(24,00,00, date("m"), date("d")-1,  date("Y"));
        $endOfDay = mktime(24,00,00, date("m"), date("d"),  date("Y"));

אבל הצורה הזו בזבזנית מידי.

Tomer 22-03-07 23:50

השעון בשרת מכוון ?

Eran-s 23-03-07 00:42

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

-1 day 

והיא תחזיר ערך TimeStamp של אתמול בדיוק באותה שעה. מכאן אתה יכול לשחק איתה ולהגיע בערך ב-3-4 שורות לרצונך.

TopSite 23-03-07 12:21

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 443498)
מכיוון שאסור לתת קוד אתן לך את הדרך תאורטית.
ישנה פונקציה שנקראת strtotime אשר ממירה מחרוזת בצורת תאריך לערך TimeStamp,
ניתן לרשום בערך שהיא מקבלת
PHP קוד:

-1 day 

והיא תחזיר ערך TimeStamp של אתמול בדיוק באותה שעה. מכאן אתה יכול לשחק איתה ולהגיע בערך ב-3-4 שורות לרצונך.

אני לא צריך 24 שעות אחורה אלא שעה מדוייקת, יום אחד אחורה בשעה 24:00, ואת היום בשעה 24:00.

Eran-s 23-03-07 13:43

לכן אמרתי לך לשחק עם זה עוד 3-4 שורות ותקבל את מבוקשך.
PHP קוד:

date("d"timestamp); 

הפונקציה בקריאה הזו תחזיר לך את המספר יום בערך שנתת לו (timestamp) שזה בעצם יהיה המספר שערכת תחילה בעזרת strtotime.

LosNir 23-03-07 14:01

ערן, שים לב שמותר לתת קודים, אבל לא לבקש..

Eran-s 23-03-07 14:28

ניסיתי להוסיף midnight וזה עובד.
PHP קוד:

$yesterday strtotime("last day midnight");
$today strtotime("now midnight"); 


TopSite 23-03-07 17:38

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 443638)
ניסיתי להוסיף midnight וזה עובד.
PHP קוד:

$yesterday strtotime("last day midnight");
$today strtotime("now midnight"); 


הפונקציה הזו לוקחת דיי הרבה משאבים, אפילו יותר ממה שאני הצעתי.

Eran-s 23-03-07 18:21

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

TopSite 23-03-07 20:47

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 443837)
אני לא יודע איך אתה יודע את זה, תסביר לי.
וסביר להניח שהבעיה היא בשעון השרת כמו שתומר אמר, בטח הוא לא מכוון.

בגלל שזה מצריך לפרסר את הסטריג שאתה מזין ואחר כך ליצור טיימסטמפ.


כל הזמנים הם GMT +2. הזמן כעת הוא 03:13.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ