我的服务器和MySQL数据库的默认时区设置为GMT。我的PHP代码转换成显示给用户的本地时区(东部在这种情况下)日期:PHP时区转换/ PHP日期不显示正确的时区
$OPENED_DATE = '2013-03-20 21:05:00'
$OPENED_DATE = new DateTime($OPENED_DATE);
$OPENED_DATE->setTimeZone(new DateTimeZone('America/New_York'));
然后我输出用户的日期:
$OPENED_DATE = strtotime($OPENED_DATE->format('Y-m-d H:i:s'));
$OPENED_DATE = date('F j, Y g:i A T', $OPENED_DATE);
的$ OPENED_DATE输出:3月20日,2013 5:05 PM GMT
实际时间显示正确,但日期输出中的'T'仍然显示GMT。有没有办法让它显示我们已经转换的时区,而不是GMT的默认值。我知道这样做的唯一方法是每次使用date_default_timezone_set
切换到用户的时区,然后切换回GMT。但我觉得必须有更高效的方式...
谢谢!
你为什么要以格式输出日期,只能用strtotime转身再做同样的事情?只需使用一次'$ OPENED_DATE-> format('F j,Y g:i A T')' – 2013-03-20 22:56:35