2012-06-24 2 views
5

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

私は現在の時刻を表示する必要があるとき、私が今やっていることのようなものです:除く

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

これは動作しますが、夏時間は、ユーザーのために影響を与えている、それはあります一時間遅れた。

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

答えて

6

このオフセットは、緯度全体に適用され、その上の国々のDSTが統一されていないため、オフセットのみから派生することはできません。たとえば、in Australia, Daylight Saving Time is not observed in Queensland, the Northern Territory or Western Australiaなどですが、それ以外はどこにでもあります。 geolocate your usersにしてから、その国にDSTがあるかどうかをPHP's DateTimeZone APIで確認してください。あなたが持っているすべては「-5」、そして、あなたはその決意をするのに十分な情報を持っていない場合は

またHow to automatically detect user's timezone?

+1

*(関連)*興味深い読書:http://derickrethans.nl/storing-date-time-in-database.html – NikiC

2

を参照してください。ユーザーが所在するタイムゾーンの名前(「America/New_York」など)にアクセスできるようにするとよいでしょう。

関連する問題