5.3.3 date()函数解析/格式化不正确

时间:2014-09-09 14:23:11

标签: php date strtotime

在我使用PHP 5.3.3的网站上,以下代码未返回预期结果;

echo strtotime('1994-07-04T23:00:00.000Z');
// 773362800 in 5.3.3 and 5.5 ALL GOOD

echo date('d M Y', strtotime('1994-07-04T23:00:00.000Z'));
// OR
echo date('d M Y', 773362800);

// both return 05 July 1994 on my server running 5.3.3, 5.5 returns 04 July 1994
// NOT SO GOOD! It should be 04 July 1994

Online Demo

我可以使用

修复问题
stristr('1994-07-04T23:00:00.000Z', 'T', true)

然而,还有其他一些代码使用相同格式的日期。因此,进行此更改并不理想,我宁愿深究原始代码未返回正确日期的原因。

1 个答案:

答案 0 :(得分:2)

您显示的格式是UTC时间。 date()将使用您服务器的时区。假设您的服务器位于UTC + XXXX时区,它将是7月的5th,而不是4th