我的服务器和 MySQL 数据库的默认时区设置为 GMT。我的 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 的输出:格林威治标准时间 2013 年 3 月 20 日下午 5:05
实际时间显示正确,但日期输出中的“T”仍显示 GMT。有没有办法让它显示我们转换到的时区,而不是默认的 GMT。我知道这样做的唯一方法是使用date_default_timezone_set
每次切换到用户的时区,然后切换回 GMT。但我觉得必须有一个更有效的方法......
谢谢!