5

私が使用しているCMSを使用すると、UTC/GMT時間からのユーザーの時間オフセットにアクセスできます。したがって、ユーザーがタイムゾーンをESTに設定している場合、このオフセットは「-5」になります。

現在の時刻を表示する必要があるときに今行っていることは、次のようなものです。

date('M j Y h:i A', time() + $offset*3600)

これは、夏時間がユーザーに影響を与える場合を除いて機能し、1時間遅れます。

だから、私の質問は、与えられた時間オフセット(「-5」のような)に1時間を追加する必要があるかどうかをどのように判断できるかということです。

4

3 に答える 3

8

http://php.net/manual/en/function.date.php

私(大文字のi)| 日付が夏時間にあるかどうか| 夏時間の場合は1、それ以外の場合は0。

これは役に立ちますか?

于 2012-06-24T23:09:10.627 に答える
6

オフセットは緯度全体に適用され、その国では均一なDSTが有効になっていないため、オフセットだけからこれを導出することはできません。たとえばオーストラリアでは、夏時間はクイーンズランド州、ノーザンテリトリー、西オーストラリア州では見られませんが、それ以外の場所では見られません。ユーザーを地理的に特定してから、 PHPのDateTimeZone APIで、その国にDSTがあるかどうかを確認する必要があります。

ユーザーのタイムゾーンを自動的に検出する方法も参照してください。

于 2012-06-24T22:27:15.217 に答える
2

あなたが持っているのが「-5」だけの場合、あなたはその決定をするのに十分な情報を持っていません。ユーザーがいるタイムゾーンの名前(「America / New_York」など)にアクセスできるように手配できると便利です。

于 2012-06-24T22:27:20.830 に答える