php date_diff计数错误

我在2015年3月1日和2017年1月31日(使用php7.2)做一个日期差异,它返回1年11个月零2天。但是(显然)应该是11个月0天或10个月30天。


这是为什么?请不要告诉我,PHP被30左右除数-如果它不如手动解决方案可靠,我就不需要日历功能!..那简直是疯了,对吧?


$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 时区从“欧洲/柏林”切换为“ UTC”时有效


date_default_timezone_set('UTC');

但是,是的,“欧洲/柏林”实际上也应该起作用...


largeQ
浏览 241回答 2
2回答

潇湘沐

这只是一个错误。已知,古老,从未解决。至少它在2017年重新开放...PHP DateTime Timedifference仅在UTC时区正确吗?
打开App,查看更多内容
随时随地看视频慕课网APP