2011-07-04 192 views
3

我在mysql表中有兩個日期。日期差異

sample: 
date1: 2011-01-01 06:40:00 
date2: 2011-02-19 18:00:00 

我需要返回它們之間的區別,就像這樣:

50天,12小時,20分鐘

我如何在PHP或MySQL這樣做呢?

+0

複製DUP。 – dynamic

+0

這不完全是鏈接問題的重複,因爲它還涉及從MySQL獲取日期,鏈接問題沒有。 – EdoDodo

+0

@pedro:你可以通過查詢來做到這一點,檢查我的答案 – Gowri

回答

4

此代碼應該做你需要的東西:

<?php 
$result = mysql_query("SELECT (date1, date2) FROM myTable;"); 
while (list($date1, $date2) = mysql_fetch_array($result)) { 
    $firstdate = new DateTime($date1); 
    $seconddate = new DateTime($date2); 
    $diff = $firstdate->diff($seconddate); 
    echo $diff->d . " days, " . $diff->h . " hours, " . $diff->i . "minutes\n"; 
} 
?> 
+0

$ diff-> m是月份。對於會議紀要,請使用$ diff-> i – pedro

+0

哎呀,你是對的。固定。 – EdoDodo

3

試試這個,

SELECT CONCAT(
FLOOR(TIMESTAMPDIFF(HOUR,'2011-01-01 06:40:00', '2011-02-19 18:00:00')/24), ' days ', 
MOD(TIMESTAMPDIFF(HOUR,'2011-01-01 06:40:00', '2011-02-19 18:00:00'), 24), ' hours ', 
MINUTE(TIMESTAMPDIFF(second,'2011-01-01 06:40:00', '2011-02-19 18:00:00')), ' minutes') 
+1

+1在MySQL中完成所有操作。 – EdoDodo