PHPでタイムゾーンを調整する方法についてはたくさんの情報がありますが、すべてのノイズのために私が何をしたいのかについての答えは見つかりませんでした。PHPのタイムゾーンをDateTime/DateTimeZoneで調整する
タイムゾーンを1つ指定すると、別のタイムゾーンの時刻に変換する必要があります。
Thisは本質的に私がやりたいことですが、PEAR Dateではなく組み込みのPHPライブラリのみを使用して行う必要があります。
これは私が何をしてきたが、それは常に私のGMTへの相対オフセットを与えているようだ:
LA時間:2009-09
$los_angeles_time_zone = new DateTimeZone('America/Los_Angeles'); $hawaii_time_zone = new DateTimeZone('Pacific/Honolulu'); $date_time_los_angeles = new DateTime('2009-09-18 05:00:00', $los_angeles_time_zone); printf("LA Time: %s<br/>", $date_time_los_angeles->format(DATE_ATOM)); $time_offset = $hawaii_time_zone->getOffset($date_time_los_angeles); printf("Offset: %s<br/>", $time_offset);
これが出力されています00::-18T05 00-07:00
オフセット:-36000
を、私は3時間(10800秒)を期待していました。 「-7:00」のことはGMTとの関係をすべて維持していると言いますが、それはなぜ私に「絶対」なオフセットを与えているのかを説明するかもしれません。
このGMT hoohahのない2つのタイムゾーン間のオフセットを取得するにはどうすればよいですか?
ありがとうございました。
UPDATE:
$date_time_los_angeles = new DateTime('2009-09-18 05:00:00', $los_angeles_time_zone);
printf("LA Time: %s<br/>", $date_time_los_angeles->format(DATE_ATOM));
$date_time_hawaii = new DateTime('2009-09-18 05:00:00', $hawaii_time_zone);
printf("Hawaii Time: %s<br/>", $date_time_hawaii->format(DATE_ATOM));
$time_offset = $los_angeles_time_zone->getOffset($date_time_los_angeles) - $hawaii_time_zone->getOffset($date_time_los_angeles);
printf("Offset: %s<br/>", $time_offset);
しかし、それは私にぎこちない感じている:
私はこれを行うと、私が欲しいものを得ることができることを私に発生しました。誰もそれを行うクリーナーの方法を知っていますか?
なお、これらはPHP> = 5.3.0です。 – GZipp
DSTを考慮していないようです。私は上記の機能を使ってCSTをGMTに変え、私のすべての時間は1時間外に出ます。 –