10

说我有一个日期

$future_time_ending = "2012-09-21 12:12:22"

我如何计算当前时间和当前时间之间的分钟数$future_time_ending

谢谢

4

1 回答 1

35

一种方法:

$minutes = (strtotime("2012-09-21 12:12:22") - time()) / 60;

strtotime将日期转换为 Unix 时间戳 - 自 Unix 纪元以来的秒数。减去当前时间戳,您就有了当前时间和未来时间之间的秒数。除以 60,结果以分钟为单位。

如果您不确定要比较的时间是将来,请取绝对值以获得正数:

$minutes = abs(strtotime("2012-09-21 12:12:22") - time()) / 60;

为了让我的回答更完整,PHP 中提供了一种更精细的 OO 方法:

$time = new DateTime("2012-09-21 12:12:22");
$diff = $time->diff(new DateTime());
$minutes = ($diff->days * 24 * 60) +
           ($diff->h * 60) + $diff->i;

如果输入时间来自服务器以外的时区,这将特别有用。

于 2012-09-20T20:12:54.260 回答