サーバーと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日17:05 GMT
実際の時刻は正しく表示されますが、日付出力の「T」は引き続きGMTを表示しています。GMTのデフォルトではなく、変換したタイムゾーンを表示する方法はありますか?これを行うために私が知っている唯一の方法は、date_default_timezone_set
毎回ユーザーのタイムゾーンに切り替えてからGMTに戻すことです。しかし、もっと効率的な方法が必要だと思います...
ありがとうございました!