1

如何通过从 PHP 中的当前时间中减去以前的时间戳来获得以分钟为单位的持续时间?

时间戳的格式就像

2009-12-05 10:35:28

我想计算已经过去了多少分钟。怎么做?

4

7 回答 7

3

要在 MySQL 中执行此操作,请使用以下TIMESTAMPDIFF函数:

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

表在哪里sessiondate_lastaccess是一个 DATE / DATETIME 字段。

于 2009-12-08T06:42:46.457 回答
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; 
?>
于 2009-12-08T05:06:07.347 回答
0

在 PHP 中查看一些漂亮的日期库。可能有东西给你。这是一个:http ://www.zachleat.com/web/2008/02/10/php-pretty-date/

于 2009-12-08T04:54:51.543 回答
0
strtotime("now") - strtotime("2009-12-05 10:35:28")

那会让你秒差。经过的分钟数除以 60。但是,如果您对初始时间戳的时区有任何信息,则需要将“现在”调整为更可比较的时间

于 2009-12-08T04:58:42.177 回答
0

类似的东西

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

strtotime返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数,因此您可以轻松地对其进行操作。如果您不想有 35.5 分钟,您可以使用floor四舍五入的数字。最后一句话,两个时间都需要在同一个时区,否则你也要计算时区差异。

于 2009-12-08T05:01:10.833 回答
0

你可以使用

$timestamp = time();

$diff = time() - $timestamp

$minutes = date( i, $diff );

于 2009-12-08T05:03:17.997 回答
0
function timeAgoMin($timestamp){
  if(!is_int($timestamp)){
    $timestamp = strtotime($timestamp);
  }

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

}
于 2009-12-08T05:09:37.080 回答