2014-02-11 52 views
0

我有一個變量存儲在數據庫中,標記用戶開始換班的時間,對於exapmle,它可能看起來像這樣03:05,因爲我有date(「H :一世」);我怎麼才能給從數據庫中提取的變量添加一個小時?這是我的代碼。我如何添加一個小時到日期變量

 $sid = $_SESSION["shift_id"]; 
     $new_query = mysql_query("SELECT * FROM `shifts` WHERE `shift_id` = '$sid'"); 
     $new_row = mysql_fetch_Assoc($new_query); 
     $check_start = $new_row["start"]; 
     $over = $check_start + 3600; 
     if($check_start > $over) 
     { 

      echo "Your shift is complete."; 

     }else 
     { 

      echo "<br />The time will be :<b>$over</b> when your shift is over.<br />"; 

     } 

但這並不會增加一個小時,所以我如何添加一小時到我有什麼?

+0

*旁註:*停止使用不推薦的'mysql_ *'函數。改爲使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。這是一個很好的[教程](http://j.mp/PoWehJ)PDO。 – Raptor

回答

0

變化$以上的回聲

date('H:i', $over) 

http://www.php.net/time 和使用PHP的外殼

echo "<br />The time will be :<b>".date('H:i', $over)."</b> when your shift is over.<br />"; 

代替

echo "<br />The time will be :<b>$over</b> when your shift is over.<br />"; 

UPDATE: 如果你哈其結果詠問題,也許您可​​以開始轉換成日期格式使用之前我的代碼

$over = strtotime($check_start) + 3600; 

http://php.net/strtotime

+0

我在03:05開始了我的「轉變」,當我做$ over = $ check_start + 3600;我沒有得到04:05,我想要做的就是在這個例子中輸出04:05,因爲那將是開始時間+ 1小時。 – user3156054

+0

更新的解決方案 – user3106988

1

一個選項,這樣做在查詢:

$new_query = mysql_query("SELECT start + INTERVAL 1 HOUR as NEW_START, shifts.* FROM shifts WHERE shift_id = '$sid'"); 
0

我看到你正在幾秒鐘內治療時間,所以你可以像這樣爆炸行開始

$check_start = $new_row["start"]; 
$hora = explode(':', $check_start); 
$check_start = ($hora[0] * 3600) + ($hora[1] * 60); 
$over = $check_start + 3600; 

在這一點上,你有一個在幾秒鐘內的check_start數字,但你的代碼永遠不會進入「Shift完成」部分,因爲你總是在條件中添加3600到變量

所以$ check_start> $ over會從不爲真

相關問題