比较 php 中的两个日期时出现问题,分钟始终为 0

problems in comparing two dates in php, minutes always 0

我需要设置相同的日期比较,我首先使用这个 php 代码进行练习,但是无论我如何更改日期,我最终得到的是小时和秒,但分钟始终为 0。顺便说一句,理想情况下,我希望能够以欧洲格式 dd/mm/yy hh:mm 编写日期,但这不起作用,所以我将其调整为美国格式。无论如何感谢您的帮助。

date_default_timezone_set('Europe/London');
$date= new DateTime('2015-06-21 18:32:00');
$now = new DateTime();
$interval = $date->diff($now);
echo "difference " . $interval->d . " days, " . $interval->h." hours, ".$interval->m." minutes";

使用 $interval->i 为分钟,$interval->m 为月。

你犯了一个简单的错误,用 属性 表示间隔分钟,是 i 而不是 mm 实际上是月份 属性。

这也是您使用欧洲格式设置日期的方式

$date = DateTime::createFromFormat('d/m/Y H:i:s', '21/06/2015 18:32:00');
$now = new DateTime();
$interval = $date->diff($now);
echo "difference " . $interval->d . " days, " . $interval->h." hours, ".$interval->i." minutes";

如果您执行 print_r($interval),您将看到所有类似这样的属性

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 0
    [h] => 6
    [i] => 4
    [s] => 15
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 1
    [days] => 0
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)