简单的date_diff显着关闭

时间:2018-01-15 22:44:21

标签: php datediff

我试图使用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"对我来说 - 所以它甚至不在球场。任何想法在这里出了什么问题?

3 个答案:

答案 0 :(得分:8)

$ 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。只是玩弄它。

答案 1 :(得分:4)

您正在使用dates in PHP的格式代码,但是您的日期间隔为different format codes

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

这将显示正确的值。

答案 2 :(得分:2)

如果您要查找总天数,请使用a格式字符。请参阅php date interval format

$diff->format('%a');

输出:

1334