Tag:

将UTC偏移量转换为时区或date

一个头刮你的。 我从IPInfoDB的API中获取地理IP数据,并从UTC返回包含 DST(如果当前已反映)的时区偏移量。 例如,我住在EST(-5),目前是DST,所以地理IP API返回( -04:00 )作为抵消。 因为DST是一个令人头疼的事情,所以这真是太好了。 但令我惊讶的是,这又令人头痛。 我加载这个数据在PHP中通过AJAX传递给应用程序。 我想在应用程序的IP地址的本地时间。 我已经完全设置,但我疯了试图找出如何设置PHP时区匹配的偏移量,所以我可以抓住当前的小时date('H'); 和分钟date('i'); 通过AJAX传递给 我不确定是否有一个特定的函数可以根据偏移量给出当前的小时数和分钟数,或者有一个实际的方法来设置基于偏移量的时区(如果有效,将会应用DST) 。 我一直在search和search谷歌find一个答案,但我所做的更具体,因为已经应用了DST。 我发现PHP.net上的一个函数似乎有效(它适用于我的时区并返回正确的时间),虽然对于其他时区(如PST),即使偏移量正确,它也会在1小时后返回-07:00与DST)。 从function返回的时区是Chile/EasterIsland ,我有一个感觉是原因。 如果可以的话,我会让这只对美国有用,但我确实需要它在全世界。 这是我现在的function。 请原谅非常混乱的代码。 在过去的几个小时里,我一直在玩弄很多东西,试图找出一个解决scheme。 大部分的function都是在网上find的。 function offsetToTZ($offset) { switch((string) $offset) { case '-04:30' : return 'America/Caracas'; break; case '-03:30' : return 'Canada/Newfoundland'; break; case '+03:30' : return 'Asia/Tehran'; break; case '+04:30' : return 'Asia/Kabul'; break; […]

确定用户的时区

Web Server是否有任何标准的方法来确定用户在网页中的时区? 也许从HTTP头或用户代理string的一部分?