2009-12-08 147 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是日期/时间字段。