2013-05-11 50 views
2

我試圖獲取當前日期和小時以及MySQL和PHP中的DATETIME字段之間的天數,小時數和分鐘數。我需要得到以下信息:試圖從現在到DYSTIME在MYSQL中獲取天,小時和分鐘

x天,x小時和x分鐘完成。

SELECT TIMESTAMPDIFF(DAY,NOW(),FECHA_FIN) AS DAY, 
     TIMESTAMPDIFF(HOUR,NOW(),FECHA_FIN)-TIMESTAMPDIFF(DAY,NOW(),FECHA_FIN)*24 AS HOUR, 
     TIMESTAMPDIFF(MINUTE,NOW(),FECHA_FIN)-TIMESTAMPDIFF(HOUR,NOW(),FECHA_FIN)*60 AS MINUTE FROM ARTICULOS 
+0

以上所用的所有代碼都是SQL。這可以在PHP中計算,但是你需要在哪裏完成? – 2013-05-11 13:37:24

+0

我只需要在php中顯示,但它沒有得到正確的信息。例如FECHA_FIN(14/05/2013 19:00:01) – jal 2013-05-11 13:47:49

回答

0
<?php 
    $dbc = [connection details here]; 
    $result = mysqli_query($dbc, "SELECT FETCHA_FIN FROM ARTICULOS;"); 
    while($row = mysqli_fetch_row($result)) 
    { 
     $dbtime = $row[0]; 
     $now = date("d/m/Y h:i:s"); 
     $difference = $now-$dbtime; 
     echo "Time to complete: " . date("h", $difference) . " hours, " . date("i", $difference) . " minutes and " . date("s", $difference) . " seconds."; 
    } 
?> 

不幸的是,我沒有時間來測試上面的代碼,但它應該正常工作,因爲我以前使用過類似的代碼。

+0

如果我也想獲得日期:date(「d」,$ difference)?我試過這個,但它得到的信息不正確 – jal 2013-05-11 14:56:10

0
SELECT FLOOR(TIMESTAMPDIFF(MINUTE, NOW(), FECHA_FIN)/1440) as Days 
    , FLOOR(TIMESTAMPDIFF(MINUTE, NOW(), FECHA_FIN) % 1440/60) as Hours 
    , TIMESTAMPDIFF(MINUTE, NOW(), FECHA_FIN) % 60 as Minutes 
FROM ARTICULOS; 
+0

我的表中沒有FECHA_FIN類型的TIMESTAMP,這是DATETIME – jal 2013-05-11 16:38:02

+0

爲什麼這不會返回剩餘的日期? – jal 2013-05-11 16:42:07

+0

TIMESTAMPDIFF僅適用於TIMESTAMPS字段?那我有沒有使用DATEDIFF()或TIMEDIFF()? – jal 2013-05-11 16:47:57

相關問題