2017-02-22 54 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