繁体   English   中英

PHP Datediff 2月问题

[英]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天。 我希望根据February年的情况,将2月定为28或29天。 我猜php.ini中一定与此有关。 什么以及在哪里进行更改或有任何破解?

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

我看到几个人的结果参差不齐,要进行调试,请尝试找出您所使用的timezonedb版本

<?php
echo timezone_version_get();
?>

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

PECL timezonedb网站可以在https://pecl.php.net/package/timezonedb中找到

检查以确保您拥有最新版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM