UTC_TIMESTAMP() を使用してデータベースにタイムスタンプを保存しています。
ユーザーが選択したタイムゾーンに基づいて出力したい。これを行う小さな関数を書いてみましたが、正しく出力されません。
// Date/time converter
function convertTZ($date, $tz, $tzFormat)
{
$date = new DateTime($date);
$date->setTimezone(new DateTimeZone($tz));
return $date->format($tzFormat);
}
echo $_SESSION['dtCurrLogin'].'<br />';
echo convertTZ($_SESSION['dtCurrLogin'], 'UTC', 'F j, Y @ g:i:s a e');
データベースからの dtCurrLogin = 2013-09-12 01:23:45
上記の出力:
2013-09-12 01:23:45 2013 年 9 月 12 日 @ 午前 5:23:45 UTC
UTC から UTC に移動したため、明らかにこれは正しくないため、それらは等しくなるはずです。EST を出力するように変更すると、午前 1:23:45 と表示されますが、もちろんそれも正しくありません。