【发布时间】:2009-12-08 04:52:30
【问题描述】:
如何通过从 PHP 中的当前时间减去前一个时间戳来获得以分钟为单位的持续时间?
时间戳的格式是这样的
2009-12-05 10:35:28
我想计算已经过去了多少分钟。 怎么做?
【问题讨论】:
-
如何在 MySQL 而不是 PHP 中做到这一点?
标签: php mysql datetime timestamp subtraction
如何通过从 PHP 中的当前时间减去前一个时间戳来获得以分钟为单位的持续时间?
时间戳的格式是这样的
2009-12-05 10:35:28
我想计算已经过去了多少分钟。 怎么做?
【问题讨论】:
标签: php mysql datetime timestamp subtraction
要在 MySQL 中执行此操作,请使用 TIMESTAMPDIFF 函数:
SELECT TIMESTAMPDIFF(MINUTE, date_lastaccess, NOW()) FROM session;
session 是表格,date_lastaccess 是 DATE / DATETIME 字段。
【讨论】:
如果你不想添加库,你可以很容易地做到这一点:
<?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;
?>
【讨论】:
在 PHP 中查看一些漂亮的日期库。可能有东西给你。这是一个:http://www.zachleat.com/web/2008/02/10/php-pretty-date/
【讨论】:
strtotime("now") - strtotime("2009-12-05 10:35:28")
这将使您获得秒差。经过的分钟数除以 60。但是,如果您对初始时间戳的时区有任何信息,则需要将“现在”调整为更具可比性的时间
【讨论】:
你可以使用
$timestamp = time();
$diff = time() - $timestamp
$minutes = date( i, $diff );
【讨论】:
function timeAgoMin($timestamp){
if(!is_int($timestamp)){
$timestamp = strtotime($timestamp);
}
return ((time() - $timestamp) / 60);
}
【讨论】: