* @version 5.0 * @copyright Copyright (C) 2014-2015 PHP Mikrotik Billing * @license GNU General Public License version 2 or later; see LICENSE.txt * @donate PayPal: iesien22@yahoo.com / Bank Mandiri: 130.00.1024957.4 **/ 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; } }