2014-02-22 42 views
1

我正在研究時間管理系統,目前我被困住了。我試圖用PHP來計算兩列之間的小時數/分鐘數(從和到)。這些都被設置爲「時間」類型,因此MySQL將其識別爲時間數據類型。如何顯示MySQL中兩個時間字段之間的分鐘數?

我試圖在PHP如下:

$from= isset($_GET['from']) ? '%'.$_GET['from'].'%' : '';  
$to = isset($_GET['to']) ? '%'.$_GET['to'].'%' : '';  
$diff = $to - $from;  


echo "<table border='1'>  
echo "<tr>";  
echo "<td>" . $row[$diff] . "</td>";  
echo "</tr>";  
echo "</table>"; 

說,例如「到」設置爲15:00:00和設置在09:00:00,然後時差該行應該是6個小時,這應該顯示該行。

變量$差異應該回顯以小時/分鐘爲單位的差異,但它只是顯示分配給該行的ID。我試圖迴應表中每行的分鐘數,而不僅僅是一個。

我已經看到了timediff函數,但不知道這是否會做到這一點。

+0

你爲什麼要從$ _GET參數中取值?您可能想直接在數據庫服務器中計算差異:http://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_timediff –

回答

0

我沒有看到你的邏輯與%$_GET瓦爾斯和$row突然出現無處。 您應該將輸入的時間轉換爲php DateTime classes。 一個示例顯示計算差異:http://nl1.php.net/manual/en/class.datetime.php#108970 創建您的DateTime,例如像這樣: $dateFrom = new DateTime("2014-02-24 ".$_GET['from']); $dateTo = new DateTime("2014-02-24 ".$_GET['to']); $diff = $dateFrom->diff($dateTo); print_r($diff) ; 如果您只需要時間上的差異,那麼您使用的一天並不重要。

+0

我更喜歡這樣的事情之後[http://stackoverflow.com/questions/365191/how-to-get-time-difference-in-minutes-in-php]但不想使用'strtotime',因爲我想聲明列名'from'和'to',所以它循環遍歷表中的所有行,最後一列顯示'from'和'to'之間的小時數/分鐘 – user3340885

+0

使用過代碼後,它顯示'從'和'到'字段作爲未定義的索引_Notice:未定義的索引:...在第120行上注意:未定義的索引:到...第121行DateInterval對象([y] => 0 [m] => 0用於'$ _GET ['to']中的[] => 0 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 0)_ – user3340885

+0

''和'$ _GET ['from']',從你的代碼中粘貼。 – Mallesbixie

相關問題