2012-07-30 46 views
4

例如,
我有一個來自美國的IP地址。
我使用這個功能:如何通過IP地址在美國獲得時區?

$timeZone = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "US"); 

得到的位置。
我得到一個數組:

0 => string 'America/Adak' 
1 => string 'America/Anchorage' 
2 => string 'America/Boise' 

我怎麼可以從IP地址知道什麼是我需要的位置?

感謝,

+2

什麼API是你使用翻譯IP地址到一個位置? – 2012-07-30 07:33:30

回答

2

不幸的是,沒有簡單的方法通過IP地址來弄清楚時區,特別是如果你使用的共享主機。

但是,如果你可以安裝GeoIP extension,你可以把它的工作是這樣的:

$region = geoip_region_by_name($_SERVER['REMOTE_ADDR']); 
$timezone = geoip_time_zone_by_country_and_region($region['country_code'], $region['region']); 

瞭解更多關於:

  1. geoip_time_zone_by_country_and_region
  2. geoip_region_by_name
相關問題