如何通过从PHP中删除当前时间的上一个时间戳来获得以分钟为单位的持续时间?

时间:2009-12-08 04:52:30

标签: php mysql datetime timestamp subtraction

如何通过从PHP中删除当前时间的上一个时间戳来获得以分钟为单位的持续时间?

时间戳的格式类似于

  

2009-12-05 10:35:28

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

7 个答案:

答案 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);

}