PHP日期差异错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP日期差异错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1373字,纯文字阅读大概需要2分钟。
内容图文
![PHP日期差异错误](/upload/InfoBanner/zyjiaocheng/797/90acfdaa76f94d47b282e035d375e8f2.jpg)
$startDate = new DateTime("2016-06-01");
$endDate = new DateTime("2016-06-30");
$diff = date_diff($startDate,$endDate);
$differenceYear = $diff->format("%y");
$differenceMonth = $diff->format("%m");
$difference = $differenceYear*12 + $differenceMonth;
echo $difference;
上面的代码将输出0作为结果.但是,当我将这两个日期更改为2016-12-01和2016-12-31时,代码将1作为输出.为什么会这样?
当我检查这个代码在线php编辑器时,它给出了正确的答案.但当我将它复制到我的本地机器时,答案显示错误.在线编辑器以美国/太平洋地区为时区.我的电脑有亚洲/加尔各答时区.两者都有相同的PHP版本
解决方法:
使用我的默认时区(Europe / Bucharest),print_r($diff)会产生:
DateInterval Object
(
[m] => 1
[d] => 0
[days] => 30
)
# I removed the other components as they are irrelevant to the question
# and they are 0 anyway.
它表示:“1个月0天”(m和d属性),总共30天(天属性).
使用Asia / Kolkata作为其打印的默认时区:
DateInterval Object
(
[m] => 0
[d] => 30
[days] => 30
)
# Again, all the other object properties are 0 and irrelevant for the question
这意味着:“0个月30天”,总共30天.
如您所见,总天数(天属性)是相同的(30)并且正确.
关于“1个月和0天”与“0个月和30天”,它们在同一时间是正确和不正确的.
“一个月”的定义是什么?它可以是28到31天之间的任何东西.这意味着,“1个月0天”等于“0个月和28天”,“0个月和29天”a.s.o.在同一时间.
问题标题为“PHP日期差异错误” – PHP日期差异中没有错误.它只是人类语言和文化中对术语“month”的宽松定义.
内容总结
以上是互联网集市为您收集整理的PHP日期差异错误全部内容,希望文章能够帮你解决PHP日期差异错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。