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条)

报告相同问题?

悬赏问题

  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?