예제 #1
0
 /**
  * @param int $iDefaultTimeZone
  * @param string $sClientTimeZone = ''
  * @return string
  */
 public static function GetStrTimeZone($iDefaultTimeZone, $sClientTimeZone = '')
 {
     if ('' !== $sClientTimeZone) {
         return $sClientTimeZone;
     }
     if (null !== self::$sTimeZone) {
         return self::$sTimeZone;
     }
     $sResult = 'Etc/GMT';
     $aTimeZones = array('Default', 'Pacific/Kwajalein', 'Pacific/Midway', 'US/Hawaii', 'US/Alaska', 'America/Tijuana', 'America/Dawson_Creek', 'America/Denver', 'America/Belize', 'America/Chicago', 'America/Cancun', 'America/Belize', 'America/Havana', 'America/New_York', 'America/Bogota', 'America/Santiago', 'America/Caracas', 'America/Glace_Bay', 'America/St_Johns', 'America/Godthab', 'America/Argentina/Buenos_Aires', 'America/Sao_Paulo', 'America/Noronha', 'Atlantic/Cape_Verde', 'Atlantic/Azores', 'Africa/Abidjan', 'Europe/Dublin', 'Europe/Amsterdam', 'Europe/Belgrade', 'Europe/Brussels', 'Europe/Sarajevo', 'Africa/Algiers', 'Europe/Minsk', 'Europe/Bucharest', 'Africa/Cairo', 'Africa/Blantyre', 'Africa/Harare', 'Asia/Jerusalem', 'Asia/Baghdad', 'Asia/Kuwait', 'Africa/Addis_Ababa', 'Europe/Moscow', 'Asia/Tehran', 'Asia/Dubai', 'Asia/Yerevan', 'Asia/Kabul', 'Asia/Tashkent', 'Asia/Kolkata', 'Asia/Katmandu', 'Asia/Yekaterinburg', 'Asia/Almaty', 'Asia/Dhaka', 'Asia/Colombo', 'Asia/Rangoon', 'Asia/Bangkok', 'Asia/Krasnoyarsk', 'Asia/Hong_Kong', 'Asia/Irkutsk', 'Asia/Kuala_Lumpur', 'Australia/Perth', 'Asia/Taipei', 'Asia/Tokyo', 'Asia/Seoul', 'Australia/Adelaide', 'Australia/Darwin', 'Asia/Yakutsk', 'Australia/Brisbane', 'Australia/Canberra', 'Pacific/Guam', 'Australia/Hobart', 'Asia/Vladivostok', 'Pacific/Noumea', 'Asia/Magadan', 'Asia/Anadyr', 'Pacific/Tongatapu');
     $iDefaultTimeZone = isset($aTimeZones[$iDefaultTimeZone]) ? $iDefaultTimeZone : 0;
     if (0 === $iDefaultTimeZone) {
         $iOffset = self::GetTimeOffset($iDefaultTimeZone, $sClientTimeZone) / 60 * -1;
         $sSign = $iOffset < 0 ? '-' : '+';
         $sResult = 'Etc/GMT' . $sSign . abs($iOffset);
     } else {
         $sResult = $aTimeZones[$iDefaultTimeZone];
     }
     self::$sTimeZone = $sResult;
     return self::$sTimeZone;
 }