PHP日期返回错误的值

时间:2013-04-26 23:20:26

标签: php date datetime timezone

我的日期格式为'Tue May 01 00:00:00 +1000 2012'(来自json文件的数组数据)

当我使用date()函数时,它返回April,:D

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

      //it returning "April 2012"

任何想法如何解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:2)

您需要检查两个时区。或者为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

答案 1 :(得分:2)

使用DateTime

,而不是使用旧的日期/时间功能,因为它们隐含地涉及您的本地时区。
$date = new DateTime('Tue May 01 00:00:00 +1000 2012');
echo $date->format('F Y');

对于任何日期,无论时区(UTC + 10小时或其他任何时间),这都将正常工作。