简单date_diff关显

Simple date_diff off significantly

我正在尝试使用 date_diff 来比较两个日期,但它甚至没有接近正确的数字。为了排除故障,我正在做一个简单的硬编码测试:

$date1              = date_create("2014-03-20");
$date2              = date_create("2017-11-13");
$diff               = date_diff($date1,$date2);     
echo               $diff->format('%r%d');

这对我来说输出“24”——所以它甚至不在大概范围内。知道这里出了什么问题吗?

您正在使用 dates in PHP, but yet you are having a date interval, that has different format codes 的格式代码。

echo $diff->format('%y-%m-%d');

这将显示正确的值。

$diff 结果包含一个 DateInterval 对象。它包含以下内容:

DateInterval Object
(
    [y] => 3
    [m] => 7
    [d] => 24
    [h] => 0
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] => 1334
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

通过回显 $diff->d 你会得到天差。如果你想要总天数。使用 $diff->days。随便玩玩吧。

如果您要查找总天数,您应该使用 a 格式字符。在 php date interval format.

查看更多信息
$diff->format('%a');

输出:

1334