dougan4663 2019-04-23 15:40 采纳率: 0%
浏览 87
已采纳

错误统计在php date_diff上

I'm doing a date-diff on 2015-03-01 and 2017-01-31 (using php7.2) and it returns 1 year, 11 months and 2 days. But it should (obviously) be either 11 months and 0 days or 10 months and 30 days.

Why is that? Please don't tell me, that php is dividing by 30 or something - I don't need a calendar-function if it is less reliable than a manual solution!.. that would be just crazy, right?

$diff = date_create('2015-03-01')->diff(date_create('2017-01-31'));
// returns
DateInterval Object
(
    [y] => 1
    [m] => 11
    [d] => 2
    [h] => 0
    [i] => 0
    [s] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] => 702
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)
// and that's simply just wrong

UPDATE it works when switching the timezone from 'Europe/Berlin' to 'UTC'

date_default_timezone_set('UTC');

but yeah, 'Europe/Berlin' should actually work, too...

  • 写回答

2条回答 默认 最新

  • dsfjnxjlbqv9812 2019-04-23 21:48
    关注

    it's just a bug. known, old, never solved. at least it was re-opened in 2017...

    PHP DateTime Timedifference only correct in UTC Timezone?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧