PHP日期返回错误的值


PHP date returning wrong value

我有一个像这样的日期格式'Tue May 01 00:00:00 +1000 2012'(来自json文件上的数组数据)

当我使用date()函数时,它返回四月,D
      echo date('F Y', strtotime('Tue May 01 00:00:00 +1000 2012'));
      //it returning "April 2012"

有什么办法解决这个问题吗?

多谢!

不要使用旧的日期/时间函数,因为它们隐式地涉及到您的本地时区,所以会把事情搞得一团糟,而是使用DateTime:

$date = new DateTime('Tue May 01 00:00:00 +1000 2012');
echo $date->format('F Y');

对于任何日期也将正确工作,而不管时区(UTC+10小时或其他任何时间)。

您需要检查这两个时区。或者为datestrtotime设置自定义呼叫


既然您使用+1000作为您的时区偏移;我猜是澳大利亚。您可以使用date_default_timezone_set()调用将时区设置为澳大利亚

echo date('F Y', strtotime('Tue May 01 00:00:00 +1000 2012'));
date_default_timezone_set('Australia/Queensland');
echo date('F Y', strtotime('Tue May 01 00:00:00 +1000 2012'));

下面是代码链接:http://codepad.org/tPC8DEQp