为什么PHP IntlDateFormatter返回错误的日期? +1小时

时间:2015-07-29 17:37:18

标签: php date

当我尝试将日期从一个时区格式化到同一时区时,我得到错误的时间(相差1小时)。我的代码是:

self.view.bounds.size.height

预计时间为$formatter = new IntlDateFormatter( 'ru_RU', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Europe/Moscow' ); $date = new DateTime("2015-07-29 14:00:00", new DateTimeZone('Europe/Moscow')); echo $formatter->format($date); ,但14:00会返回。

更新:当我显示2013年或2014年时,一切正常! 2015年会发生什么?

UPDATE2 :从2014年10月26日起增加+1小时。俄罗斯进入永恒冬季的时间。好。但是......如何正确格式化?

3 个答案:

答案 0 :(得分:3)

我直接使用'GMT + 03:00'代替'Europe / Moscow'。 显然,图书馆的开发者没有时间让立法者参与。

答案 1 :(得分:2)

如果您遇到同样的问题,请在您的操作系统上更新icu(Unicode的国际组件)。

答案 2 :(得分:0)

检查public void someOtherMethod(int clientId){ clientRepository.coolClientStuff(clientId); } php.ini文件,确保其设置为

date.timezone