0

私のシステムを使用している世界中のユーザーがいます。それぞれがローカルタイムゾーンを選択しています(UTCとして記録されます(例:UM8など))。

すべてのデータはUTCを標準として使用して保存されるため、すべてのデータを比較できます。

codeigniterのgmt_to_local()関数(http://codeigniter.com/user_guide/helpers/date_helper.html)を使用して、ユーザーにローカルな日付/時刻を表示できますが、DST = True/Falseを要求します。

タイムゾーンを調べて、現在DSTを監視しているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

4

そして、コービンの答えに加えて(彼に+1):

実際のタイムゾーン名がある場合は、次のようなコードを使用できます

$date = new DateTime('now', new DateTimeZone('Pacific/Auckland'));
echo $date->format('I'); // 0

$date = new DateTime('now', new DateTimeZone('Europe/London'));
echo $date->format('I'); // 1

つまり、オークランド(ニュージーランド)ではDSTではなく、ロンドンではDSTです。

于 2012-05-17T10:04:20.393 に答える
2

できません。UTCオフセットを記録しただけでは、十分な情報がありません。DSTではないときに2つの国がUTCXになる可能性があり、そのうちの1つだけが異なるオフセットにシフトする可能性があるため、国固有のタイムゾーンが必要です。

具体的な例として、DSTが有効になっていない場合、ニューヨークとコロンビアはどちらもUTC-5です。DST中に、ニューヨークはUTC-4に変更されます。したがって、UTC -5を使用している場合、位置情報なしでUTC -4を使用する必要があるかどうかをどのように知ることができますか(NYは切り替え、このDST = trueですが、コロンビアは切り替えません)。これはかなり悪い例ですが、頭に浮かんだ最初の2つの場所:)。

于 2012-05-17T10:00:52.873 に答える