我有一个像这样的日期格式'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小时或其他任何时间)。
您需要检查这两个时区。或者为date
和strtotime
设置自定义呼叫
既然您使用+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