如何在 PHP 中获取以分钟为单位的时差

2022-08-30 06:02:08

如何在PHP中计算两个日期时间之间的微小差异?


答案 1

上面的答案是针对旧版本的PHP。使用 DateTime 类进行任何日期计算,因为 PHP 5.3 是规范。

$start_date = new DateTime('2007-09-01 04:10:58');
$since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00'));
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';

$since_start 是一个 DateInterval 对象。请注意,days 属性可用(因为我们使用了 DateTime 类的 diff 方法来生成 DateInterval 对象)。

上面的代码将输出:

1837 天 总计
5 年
0 个月
10 天
6 小时
14 分
2 秒

要获取总分钟数:

$minutes = $since_start->days * 24 * 60;
$minutes += $since_start->h * 60;
$minutes += $since_start->i;
echo $minutes.' minutes';

这将输出:

2645654 分钟

这是两个日期之间经过的实际分钟数。DateTime 课程将考虑夏令时(取决于时区),而“旧方法”则不会考虑。阅读有关日期和时间 http://www.php.net/manual/en/book.datetime.php 手册


答案 2

答案如下:

$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
echo round(abs($to_time - $from_time) / 60,2). " minute";

推荐