2017-02-22 22 views
1

我有一些代码用于填充与时区然而,包括亚洲,非洲,等我想只有它列出美国时区选择框一个。那可能吗?我现在的代码是...TIMEZONE选择换向箱仅限美国

/* 
    Get all timezone listing 
    */ 
    function event_tz_list() { 
     $zones_array = array(); 
     $timestamp = time(); 
     foreach(timezone_identifiers_list() as $key => $zone) { 
     date_default_timezone_set($zone); 
     $zones_array[$key]['zone'] = $zone; 
     $zones_array[$key]['offset'] = date('P', $timestamp); 
     $zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', 
    $timestamp); 
     } 
     return $zones_array; 

    } 

任何信息将不胜感激!

回答

1

timezone_identifiers_list()有两个参数。一种用于什么时区,以获得持续的和两个字母的国家代码,如果第一个参数是DateTimeZone::PER_COUNTRY。因此,这将非常明白:

timezone_identifiers_list(DateTimeZone::PER_COUNTRY, 'US') 

如果你想获得7名缩写,而不是29 America/City值:

function event_tz_list() { 
    foreach(timezone_identifiers_list(DateTimeZone::PER_COUNTRY, 'US') as $key => $zone) { 
     $timestamp = time(); 
     date_default_timezone_set($zone); 
     $abbrev = date('T'); // use as the key and you won't get duplicates 
     $zones_array[$abbrev]['zone'] = $abbrev; 
     $zones_array[$abbrev]['offset'] = date('P', $timestamp); 
     $zones_array[$abbrev]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp); 
    } 
    return $zones_array; 
} 

print_r(event_tz_list()); 

产量:

Array 
(
    [HAST] => Array 
     (
      [zone] => HAST 
      [offset] => -10:00 
      [diff_from_GMT] => UTC/GMT -10:00 
     ) 

    [AKST] => Array 
     (
      [zone] => AKST 
      [offset] => -09:00 
      [diff_from_GMT] => UTC/GMT -09:00 
     ) 

    [MST] => Array 
     (
      [zone] => MST 
      [offset] => -07:00 
      [diff_from_GMT] => UTC/GMT -07:00 
     ) 

    [CST] => Array 
     (
      [zone] => CST 
      [offset] => -06:00 
      [diff_from_GMT] => UTC/GMT -06:00 
     ) 

    [EST] => Array 
     (
      [zone] => EST 
      [offset] => -05:00 
      [diff_from_GMT] => UTC/GMT -05:00 
     ) 

    [PST] => Array 
     (
      [zone] => PST 
      [offset] => -08:00 
      [diff_from_GMT] => UTC/GMT -08:00 
     ) 

    [HST] => Array 
     (
      [zone] => HST 
      [offset] => -10:00 
      [diff_from_GMT] => UTC/GMT -10:00 
     ) 

) 

这都说明7个时区(我学到了一些东西):

有夏威夷 - 阿留申标准时间(HAST)和夏威夷标准时间(HST)之间没有时间差。

+0

正要编辑我的问题包括! – miken32

+0

你真了不起!谢谢!! –

+0

很高兴帮助,不要忘记接受答案。 – AbraCadaver