如何通过从PHP中删除当前时间的上一个时间戳来获得以分钟为单位的持续时间?
时间戳的格式类似于
2009-12-05 10:35:28
我想计算过了多少分钟。 怎么做?
答案 0 :(得分:3)
要在MySQL中执行此操作,请使用TIMESTAMPDIFF
函数:
SELECT TIMESTAMPDIFF(MINUTE, date_lastaccess, NOW()) FROM session;
session
是表格,date_lastaccess
是DATE / DATETIME字段。
答案 1 :(得分: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;
?>
答案 2 :(得分:0)
在PHP中查看一些漂亮的日期库。可能有适合你的东西。这是一个:http://www.zachleat.com/web/2008/02/10/php-pretty-date/
答案 3 :(得分:0)
strtotime("now") - strtotime("2009-12-05 10:35:28")
这会让你有所不同。除以60分钟过去了几分钟。但是,如果您有关于初始时间戳的时区的任何信息,则需要将“现在”调整为更可比的时间
答案 4 :(得分:0)
类似的东西
$second = strtotime('now') - strtotime($your_date);
$minute = $second / 60;
strtotime
返回自1970年1月1日00:00:00 UTC以来的秒数,因此您可以轻松操纵此操作。如果您需要不想35.5分钟,可以使用floor
对数字进行四舍五入。最后一句话,时间需要在同一时区,或者你也要计算时区差异。
答案 5 :(得分:0)
你可以使用
$timestamp = time();
$diff = time() - $timestamp
$minutes = date( i, $diff );
答案 6 :(得分:0)
function timeAgoMin($timestamp){
if(!is_int($timestamp)){
$timestamp = strtotime($timestamp);
}
return ((time() - $timestamp) / 60);
}