mirror of
https://github.com/hotspotbilling/phpnuxbill.git
synced 2024-11-11 01:34:03 +08:00
39 lines
No EOL
1.3 KiB
PHP
39 lines
No EOL
1.3 KiB
PHP
<?php
|
|
/**
|
|
* PHP Mikrotik Billing (https://ibnux.github.io/phpnuxbill/)
|
|
**/
|
|
|
|
class Timezone {
|
|
public static function timezoneList()
|
|
{
|
|
$timezoneIdentifiers = DateTimeZone::listIdentifiers();
|
|
$utcTime = new DateTime('now', new DateTimeZone('UTC'));
|
|
|
|
$tempTimezones = array();
|
|
foreach ($timezoneIdentifiers as $timezoneIdentifier) {
|
|
$currentTimezone = new DateTimeZone($timezoneIdentifier);
|
|
|
|
$tempTimezones[] = array(
|
|
'offset' => (int)$currentTimezone->getOffset($utcTime),
|
|
'identifier' => $timezoneIdentifier
|
|
);
|
|
}
|
|
|
|
// Sort the array by offset,identifier ascending
|
|
usort($tempTimezones, function($a, $b) {
|
|
return ($a['offset'] == $b['offset'])
|
|
? strcmp($a['identifier'], $b['identifier'])
|
|
: $a['offset'] - $b['offset'];
|
|
});
|
|
|
|
$timezoneList = array();
|
|
foreach ($tempTimezones as $tz) {
|
|
$sign = ($tz['offset'] > 0) ? '+' : '-';
|
|
$offset = gmdate('H:i', abs($tz['offset']));
|
|
$timezoneList[$tz['identifier']] = '(UTC ' . $sign . $offset . ') ' .
|
|
$tz['identifier'];
|
|
}
|
|
|
|
return $timezoneList;
|
|
}
|
|
} |