Find correct Cisco TZ Code
This commit is contained in:
parent
84925a334e
commit
8303ec28a4
|
@ -67,16 +67,21 @@ class extconfigs
|
||||||
if (empty($tz_tmp)) {
|
if (empty($tz_tmp)) {
|
||||||
return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
return array('offset' => '00', 'daylight' => '', 'cisco_code' => 'Greenwich');
|
||||||
}
|
}
|
||||||
|
|
||||||
// as php DateTimeZone::listAbbreviations() has multiple historic Values
|
// as php DateTimeZone::listAbbreviations() has multiple historic Values
|
||||||
// Need to find one that matches this machine offset.
|
// Need to find one that matches this machine offset.
|
||||||
|
|
||||||
//Now find out if DST is used here. Test if DST setting is different in 6 months
|
//Now find out if DST is used here. Test if DST setting is different in 6 months
|
||||||
|
$usesDaylight = false;
|
||||||
$haveDstNow = date('I');
|
$haveDstNow = date('I');
|
||||||
$futureDate = (new \DateTime(null,new \DateTimeZone($index)))->modify('+6 months');
|
$futureDateArray = array(2,4,6,8);
|
||||||
dbug('now is',$haveDstNow);
|
foreach ($futureDateArray as $numMonths) {
|
||||||
dbug('future date', $futureDate->format('I'));
|
$futureDate = (new \DateTime(null,new \DateTimeZone($index)))->modify("+{$numMonths} months");
|
||||||
|
if ($futureDate->format('I') != $haveDstNow) {
|
||||||
|
$usesDaylight = true;
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (count($tz_tmp)==1) {
|
if (count($tz_tmp)==1) {
|
||||||
$time_set = $tz_tmp[0];
|
$time_set = $tz_tmp[0];
|
||||||
|
@ -91,11 +96,15 @@ class extconfigs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Should now have a match on offset.
|
// Now look for a match in cisco_code based on offset and DST
|
||||||
|
// First correct offset if we have DST now
|
||||||
$tmp_ofset = $time_set['offset'] / 60;
|
$tmp_ofset = $time_set['offset'] / 60;
|
||||||
$tmp_dli = (empty($time_set['dst']) ? '' : 'Daylight' );
|
if ($haveDstNow) {
|
||||||
|
$tmp_ofset = $tmp_ofset - 60;
|
||||||
|
}
|
||||||
foreach ($this->cisco_timezone as $key => $value) {
|
foreach ($this->cisco_timezone as $key => $value) {
|
||||||
if (($value['offset'] == $tmp_ofset) and ( $value['daylight'] == $tmp_dli )) {
|
if (($value['offset'] == $tmp_ofset) and ( $value['daylight'] == $usesDaylight )) {
|
||||||
|
dbug('cisco_code found', $key);
|
||||||
return $this->get_cisco_time_zone($key);
|
return $this->get_cisco_time_zone($key);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -200,74 +209,53 @@ class extconfigs
|
||||||
'zh_TW' => array('code' => 'zh', 'language' => 'Chinese', 'locale' => 'Chinese_Taiwan', 'codepage' => 'ISO8859-1')
|
'zh_TW' => array('code' => 'zh', 'language' => 'Chinese', 'locale' => 'Chinese_Taiwan', 'codepage' => 'ISO8859-1')
|
||||||
);
|
);
|
||||||
private $cisco_timezone = array(
|
private $cisco_timezone = array(
|
||||||
'Dateline' => array('offset' => '-720', 'daylight' => ''),
|
'Dateline' => array('offset' => '-720', 'daylight' => false),
|
||||||
'Samoa' => array('offset' => '-660', 'daylight' => ''),
|
'Samoa' => array('offset' => '-660', 'daylight' => false),
|
||||||
'Hawaiian' => array('offset' => '-600', 'daylight' => ''),
|
'Hawaiian' => array('offset' => '-600', 'daylight' => false),
|
||||||
'Alaskan' => array('offset' => '-540', 'daylight' => 'Daylight'),
|
'Alaskan' => array('offset' => '-540', 'daylight' => true),
|
||||||
'Pacific' => array('offset' => '-480', 'daylight' => 'Daylight'),
|
'Pacific' => array('offset' => '-480', 'daylight' => true),
|
||||||
'Mountain' => array('offset' => '-420', 'daylight' => 'Daylight'),
|
'Mountain' => array('offset' => '-420', 'daylight' => true),
|
||||||
'US Mountain' => array('offset' => '-420', 'daylight' => ''),
|
'US Mountain' => array('offset' => '-420', 'daylight' => false),
|
||||||
'Central' => array('offset' => '-360', 'daylight' => 'Daylight'),
|
'Central' => array('offset' => '-360', 'daylight' => true),
|
||||||
'Mexico' => array('offset' => '-360', 'daylight' => 'Daylight'),
|
'Mexico' => array('offset' => '-360', 'daylight' => true),
|
||||||
'Canada Central' => array('offset' => '-360', 'daylight' => ''),
|
'Canada Central' => array('offset' => '-360', 'daylight' => false),
|
||||||
'SA Pacific' => array('offset' => '-300', 'daylight' => ''),
|
'SA Pacific' => array('offset' => '-300', 'daylight' => false),
|
||||||
'Eastern' => array('offset' => '-300', 'daylight' => 'Daylight'),
|
'Eastern' => array('offset' => '-300', 'daylight' => true),
|
||||||
'US Eastern' => array('offset' => '-300', 'daylight' => ''),
|
'US Eastern' => array('offset' => '-300', 'daylight' => false),
|
||||||
'Atlantic' => array('offset' => '-240', 'daylight' => 'Daylight'),
|
'Atlantic' => array('offset' => '-240', 'daylight' => true),
|
||||||
'SA Western' => array('offset' => '-240', 'daylight' => ''),
|
'SA Western' => array('offset' => '-240', 'daylight' => false),
|
||||||
'Pacific SA' => array('offset' => '-240', 'daylight' => ''),
|
'Pacific SA' => array('offset' => '-240', 'daylight' => false),
|
||||||
'Newfoundland' => array('offset' => '-210', 'daylight' => 'Daylight'),
|
'Newfoundland' => array('offset' => '-210', 'daylight' => true),
|
||||||
'E. South America' => array('offset' => '-180', 'daylight' => 'Daylight'),
|
'E. South America' => array('offset' => '-180', 'daylight' => true),
|
||||||
'SA Eastern' => array('offset' => '-180', 'daylight' => ''),
|
'SA Eastern' => array('offset' => '-180', 'daylight' => false),
|
||||||
'Pacific SA' => array('offset' => '-180', 'daylight' => 'Daylight'),
|
'Pacific SA' => array('offset' => '-180', 'daylight' => true),
|
||||||
'Mid-Atlantic' => array('offset' => '-120', 'daylight' => 'Daylight'),
|
'Mid-Atlantic' => array('offset' => '-120', 'daylight' => true),
|
||||||
'Azores' => array('offset' => '-060', 'daylight' => 'Daylight'),
|
'Azores' => array('offset' => '-060', 'daylight' => true),
|
||||||
'GMT' => array('offset' => '00', 'daylight' => 'Daylight'),
|
'GMT' => array('offset' => '00', 'daylight' => true),
|
||||||
'Greenwich' => array('offset' => '00', 'daylight' => ''),
|
'Greenwich' => array('offset' => '00', 'daylight' => false),
|
||||||
'W. Europe' => array('offset' => '60', 'daylight' => 'Daylight'),
|
'W. Europe' => array('offset' => '60', 'daylight' => true),
|
||||||
'GTB' => array('offset' => '60', 'daylight' => 'Daylight'),
|
'Central Europe' => array('offset' => '120', 'daylight' => true),
|
||||||
'Egypt' => array('offset' => '60', 'daylight' => 'Daylight'),
|
'South Africa' => array('offset' => '120', 'daylight' => false),
|
||||||
'E. Europe' => array('offset' => '60', 'daylight' => 'Daylight'),
|
'Saudi Arabia' => array('offset' => '180', 'daylight' => false),
|
||||||
'Romance' => array('offset' => '120', 'daylight' => 'Daylight'),
|
'Iran' => array('offset' => '210', 'daylight' => true),
|
||||||
'Central Europe' => array('offset' => '120', 'daylight' => 'Daylight'),
|
'Caucasus' => array('offset' => '240', 'daylight' => true),
|
||||||
'South Africa' => array('offset' => '120', 'daylight' => ''),
|
'Arabian' => array('offset' => '240', 'daylight' => false),
|
||||||
'Jerusalem' => array('offset' => '120', 'daylight' => 'Daylight'),
|
'Afghanistan' => array('offset' => '270', 'daylight' => false),
|
||||||
'Saudi Arabia' => array('offset' => '180', 'daylight' => ''),
|
'West Asia' => array('offset' => '300', 'daylight' => false),
|
||||||
/* Russian Regions */
|
'India' => array('offset' => '330', 'daylight' => false),
|
||||||
'Russian/Kaliningrad' => array('offset' => '120', 'daylight' => '', 'cisco_code' => 'South Africa Standard Time'),
|
'Central Asia' => array('offset' => '360', 'daylight' => false),
|
||||||
'Russian/Moscow' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
'SE Asia' => array('offset' => '420', 'daylight' => false),
|
||||||
'Russian/St.Peterburg' => array('offset' => '180', 'daylight' => '', 'cisco_code' => 'Russian Standard Time'),
|
'China' => array('offset' => '480', 'daylight' => false),
|
||||||
'Russian/Samara' => array('offset' => '240', 'daylight' => '', 'cisco_code' => 'Arabian Standard Time'),
|
'Tokyo' => array('offset' => '540', 'daylight' => false),
|
||||||
'Russian/Novosibirsk' => array('offset' => '300', 'daylight' => '', 'cisco_code' => 'Ekaterinburg Standard Time'),
|
'Cen. Australia' => array('offset' => '570', 'daylight' => true),
|
||||||
'Russian/Ekaterinburg' => array('offset' => '300', 'daylight' => '', 'cisco_code' => 'Ekaterinburg Standard Time'),
|
'AUS Central' => array('offset' => '570', 'daylight' => false),
|
||||||
'Russian/Irkutsk' => array('offset' => '480', 'daylight' => '', 'cisco_code' => 'China Standard Time'),
|
'E. Australia' => array('offset' => '600', 'daylight' => false),
|
||||||
'Russian/Yakutsk' => array('offset' => '540', 'daylight' => '', 'cisco_code' => 'Tokyo Standard Time'),
|
'AUS Eastern' => array('offset' => '600', 'daylight' => true),
|
||||||
'Russian/Khabarovsk' => array('offset' => '600', 'daylight' => '', 'cisco_code' => 'West Pacific Standard Time'),
|
'West Pacific' => array('offset' => '600', 'daylight' => false),
|
||||||
'Russian/Vladivostok' => array('offset' => '600', 'daylight' => '', 'cisco_code' => 'West Pacific Standard Time'),
|
'Tasmania' => array('offset' => '600', 'daylight' => true),
|
||||||
'Russian/Sakhalin' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
'Central Pacific' => array('offset' => '660', 'daylight' => false),
|
||||||
'Russian/Magadan' => array('offset' => '660', 'daylight' => '', 'cisco_code' => 'Central Pacific Standard Time'),
|
'Fiji' => array('offset' => '720', 'daylight' => false),
|
||||||
'Russian/Kamchatka' => array('offset' => '720', 'daylight' => '', 'cisco_code' => 'Fiji Standard Time'),
|
'New Zealand' => array('offset' => '720', 'daylight' => true)
|
||||||
/* EnD - Russian Regions */
|
|
||||||
'Iran' => array('offset' => '210', 'daylight' => 'Daylight'),
|
|
||||||
'Caucasus' => array('offset' => '240', 'daylight' => 'Daylight'),
|
|
||||||
'Arabian' => array('offset' => '240', 'daylight' => ''),
|
|
||||||
'Afghanistan' => array('offset' => '270', 'daylight' => ''),
|
|
||||||
'West Asia' => array('offset' => '300', 'daylight' => ''),
|
|
||||||
'India' => array('offset' => '330', 'daylight' => ''),
|
|
||||||
'Central Asia' => array('offset' => '360', 'daylight' => ''),
|
|
||||||
'SE Asia' => array('offset' => '420', 'daylight' => ''),
|
|
||||||
'China' => array('offset' => '480', 'daylight' => ''),
|
|
||||||
'Taipei' => array('offset' => '480', 'daylight' => ''),
|
|
||||||
'Tokyo' => array('offset' => '540', 'daylight' => ''),
|
|
||||||
'Cen. Australia' => array('offset' => '570', 'daylight' => 'Daylight'),
|
|
||||||
'AUS Central' => array('offset' => '570', 'daylight' => ''),
|
|
||||||
'E. Australia' => array('offset' => '600', 'daylight' => ''),
|
|
||||||
'AUS Eastern' => array('offset' => '600', 'daylight' => 'Daylight'),
|
|
||||||
'West Pacific' => array('offset' => '600', 'daylight' => ''),
|
|
||||||
'Tasmania' => array('offset' => '600', 'daylight' => 'Daylight'),
|
|
||||||
'Central Pacific' => array('offset' => '660', 'daylight' => ''),
|
|
||||||
'Fiji' => array('offset' => '720', 'daylight' => ''),
|
|
||||||
'New Zealand' => array('offset' => '720', 'daylight' => 'Daylight')
|
|
||||||
);
|
);
|
||||||
|
|
||||||
public function validate_init_path($confDir = '', $db_vars, $sccp_driver_replace = '')
|
public function validate_init_path($confDir = '', $db_vars, $sccp_driver_replace = '')
|
||||||
|
|
Loading…
Reference in a new issue