4

デフォルトのタイムゾーンを変更せずに、PHPで日付文字列のタイムゾーンを変換するにはどうすればよいですか. ローカルで表示専用に変換したい。PHP のタイム ゾーン設定は変更しないでください。

編集: ソース時間は UTC 文字列です。タイム ゾーンを UTC のままにして別の形式に変換したいのですが、php はそれをローカル タイムゾーンに変換しています。私が使用したコードは次のとおりです。

date('Y-m-d H:i::s',strtotime($time_str));

タイムゾーンを保持するにはどうすればよいですか?

4

1 に答える 1

9
$src_tz = new DateTimeZone('America/Chicago');
$dest_tz = new DateTimeZone('America/New_York');

$dt = new DateTime("2000-01-01 12:00:00", $src_tz);
$dt->setTimeZone($dest_tz);

echo $dt->format('Y-m-d H:i:s');

ソース時刻がUTCの場合、1行を次のように変更できることに注意してください。

$dt = new DateTime("2000-01-01 12:00:00 UTC");

編集: UTCに行きたいようです。その場合は"UTC"、コンストラクターのパラメーターとして$dest_tz使用し、元のコードブロックを使用します。(もちろん、$src_tzデフォルトのタイムゾーンと同じ場合は、パラメーターを省略できます。)

于 2012-05-22T23:42:06.763 に答える