2009-12-08 106 views

回答

1

如果你不想添加庫,你可以做到這一點很容易地:

<?php 
$date1 = "2009-12-05 10:35:28"; 
$date2 = "2009-12-07 11:58:12"; 
$diff = strtotime($date2) - strtotime($date1); 
$minutes_passed = $diff/60; 
echo $minutes_passed." minutes have passed between ".$date1." and ".$date2; 
?> 
+0

如何在MySQL而不是PHP中執行此操作? – Steven 2009-12-08 05:22:03

0
strtotime("now") - strtotime("2009-12-05 10:35:28") 

這會得到你秒差。分鐘過去60分鐘。如果您對初始時間戳的時區的任何信息,但是,你需要調整「現在」以一個更具可比性的時間

+0

你可以用time()代替strtotime(「now」) – echo 2009-12-08 05:02:56

0

類似的東西

$second = strtotime('now') - strtotime($your_date); 
$minute = $second/60; 

strtotime回報的數從UTC 1970年1月1日00:00:00開始秒,所以你可以很容易地操縱這個。如果你需要不想有35.5分鐘,你可以使用floor來湊數。最後的評論這兩個時間都需要在同一個時區,否則你也會計算時區差異。

0

你可以只使用

$timestamp = time();

$diff = time() - $timestamp

$minutes = date(i, $diff);

+0

,這絕對不行。想想看,它會返回像01:11:20這樣的東西,而你只能得到11個部分。 – mauris 2009-12-08 05:09:01

+0

這不是我想要的。 – Steven 2009-12-08 05:22:57

0
function timeAgoMin($timestamp){ 
    if(!is_int($timestamp)){ 
    $timestamp = strtotime($timestamp); 
    } 

    return ((time() - $timestamp)/60); 

} 
+0

如何在MySQL中做到這一點?有一個列/字段存儲先前的時間戳。 – Steven 2009-12-08 05:37:14

+0

提取時間戳並通過此函數解析它? – mauris 2009-12-08 05:58:47

3

爲此在MySQL中使用TIMESTAMPDIFF功能:

SELECT TIMESTAMPDIFF(MINUTE, date_lastaccess, NOW()) FROM session;

哪裏session是表和date_lastaccess是日期/時間字段。

相關問題