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

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

Maccabi4ever 13-11-07 00:10

חיסור זמנים ב php בעיה
 
הקוד :
קוד:

<?php
//$selectit = mysql_query("SELECT * FROM resultboard WHERE id=5");
//$select = mysql_fetch_array($selectit,MYSQL_ASSOC);
$timegame = $select[time];
$curtime = new tTime();
$curtime->vTime = date("l:H:m");
$curtime->fInit();
$curtime->fCalculate();
$gametime = new tTime();
$gametime->vTime = $select["time"];
$gametime->fInit();
$gametime->fCalculate();
$datenow = $curtime->minu;
$timegame = $gametime->minu;
if ($datenow-$timegame >= 0 && $datenow-$timegame < 45)
 echo "מחצית ראשונה";
else if ($datenow-$timegame == 45 && $datenow-$timegame <= 60)
 echo "מחצית";
else if ($datenow-$timegame > 60 && $datenow-$timegame < 105)
 echo "מחצית שנייה";
else if ($datenow-$timegame >= 105)
 echo "הסתיים";
else
 echo "לא התחיל";
class tTime
{
 var $vTime;
 var $day;
 var $hour;
 var $minu;
 
 function fInit(){
  list($this->day,$this->hour,$this->minu) = explode(":",$this->vTime);}
 
 function fCalculate(){
  $this->minu = $this->minu + ($this->hour + $this->day * 24) * 60;}
}
?>

עכשיו שאני עושה הצגת התוצאה של החיסור ב echo הוא מציג לי מספר כזה -30500 משהו כזה
אז הכנסתי לו נתון ש timegame זה 23:00:00 (מוגדר ב phpmyadmin על time) והשעה עכשיו 00:08:00 אז הוא לא מציג לי את ההפרש הנכון הוא צריך להציג שעה ו 8 דקות יענו 68 דקות והוא מציג לי מספר -30500 ובגלל זה ב if ים הוא לא מציג את המידע הדרוש הוא מציג את מה שקטן מ 0 שבגלל צריך להציג מה שגדול מ 60 ...

מה הבעיה ?

Ori The Man 13-11-07 03:04

לחיסור זמנים לפי מה שידוע לי אתה אמור להשתמש ב mktime
http://il2.php.net/mktime

Maccabi4ever 13-11-07 03:10

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


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

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