PHP datediff 二月刊

PHP datediff february issues

我正在使用代码查找自新年(1 月 1 日)以来已经过去了多少天。 我使用此代码:

$newyear = new DateTime("2017-01-01"); // January 1, 2017.
$today = new DateTime(); // March 6, 2017.
$difference = $newyear->diff($today);

现在,如果我使用这段代码,它会显示正确的天数,

echo $difference->format("%a days"); // 64 days

但是当我使用不同的格式时,它就出错了。

echo $difference->format("%m months %d days"); // 2months 2 days.

我认为这是由于 PHP 将 2 月计算为 31 天,所以从技术上讲是 31 + 31 + 2 天。我希望它根据闰年条件将 2 月计为 28 或 29 天。我想 php.ini 中一定有与此相关的内容。更改内容和更改位置或是否有任何黑客攻击?

要调试此问题 PHP 错误地报告两个日期之间的差异,我们首先必须检查一些事情。

我看到一些人得到的结果不一,要对此进行调试,请尝试找出您拥有的 timezonedb 版本

<?php
echo timezone_version_get();
?>

http://php.net/manual/en/function.timezone-version-get.php

可以在 https://pecl.php.net/package/timezonedb

找到 PECL timezonedb 站点

检查您是否拥有最新版本。