2 require_once 'Pman.php';
4 class Pman_Core_TimeZone extends Pman
10 if (!$this->getAuthUser()) {
11 $this->jerr("Not authenticated", array('authFailure' => true));
17 function get($base, $opts=array())
19 $timezones = self::getTimezones();
23 foreach($data as $tz => $offset) {
24 $arr = explode('/', $tz);
32 echo json_encode(array(
37 'successProperty' => 'success',
38 'totalProperty' => 'total',
46 'total' => count($data),
52 function post($base) {
56 static $timezones = array();
58 static function getTimezones()
60 if(!empty(self::$timezones)) {
61 return self::$timezones;
64 $ce = DB_DataObject::factory('core_enum');
67 *, TIME_FORMAT(TIMEDIFF(NOW(), CONVERT_TZ(NOW(), Name, "UTC")), "%H:%i") as offset
76 // ignroe timezone such as 'CET' and 'America/Argentina/Buenos_Aires'
77 if(substr_count($ce->Name, '/') != 1) {
81 $ar = explode('/', $ce->Name);
82 // ignore timezone such as 'Etc/GMT+8'
87 self::$timezones[$ce->Name] = $ce->offset;
90 return self::$timezones;
93 static function getOffset($timezone)
95 $ce = DB_DataObject::factory('core_enum');
98 TIME_FORMAT(TIMEDIFF(NOW(), CONVERT_TZ(NOW(), Name, "UTC")), "%H:%i") as offset
102 Name = "' . $ce->escape($timezone) . '"
106 return empty($ce->offset) ? '' : $ce->offset;