当前位置: 首页>>代码示例>>PHP>>正文


PHP DateTimeZone::listIdentifiers方法代码示例

本文整理汇总了PHP中DateTimeZone::listIdentifiers方法的典型用法代码示例。如果您正苦于以下问题:PHP DateTimeZone::listIdentifiers方法的具体用法?PHP DateTimeZone::listIdentifiers怎么用?PHP DateTimeZone::listIdentifiers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DateTimeZone的用法示例。


在下文中一共展示了DateTimeZone::listIdentifiers方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: timezones

function timezones()
{
    $list = DateTimeZone::listIdentifiers();
    $data = array();
    foreach ($list as $id => $zone) {
        $now = new DateTime(null, new DateTimeZone($zone));
        $offset = $now->getOffset();
        $offset_round = round(abs($offset / 3600), 2);
        $minutes = fmod($offset_round, 1);
        if ($minutes == 0) {
            $offset_label = $offset_round . '  ';
        } elseif ($minutes == 0.5) {
            $offset_label = (int) $offset_round . '.30';
        } elseif ($minutes == 0.75) {
            $offset_label = (int) $offset_round . '.45';
        }
        $sign = $offset > 0 ? '+' : '-';
        if ($offset == 0) {
            $sign = ' ';
            $offset = '';
        }
        $label = 'GMT' . $sign . $offset_label . ' ' . $zone;
        $data[$offset][$zone] = array('offset' => $offset, 'label' => $label, 'timezone_id' => $zone);
    }
    ksort($data);
    $timezones = array();
    foreach ($data as $offsets) {
        ksort($offsets);
        foreach ($offsets as $zone) {
            $timezones[] = $zone;
        }
    }
    return $timezones;
}
开发者ID:hackiosa,项目名称:anchor-cms,代码行数:34,代码来源:run.php

示例2: up

 /**
  * {@inheritdoc}
  */
 public function up()
 {
     // only run this task if there aren't any time zones defined yet
     if (TimeZoneData::get()->count() == 0) {
         $this->message('Adding new time zone entries.');
         // prepare the information provided by PHP
         $timezones = DateTimeZone::listIdentifiers();
         foreach ($timezones as $timezone) {
             // replace some strings to increase the readibility.
             $tzNice = str_replace(array_keys($this->replacementMap), array_values($this->replacementMap), $timezone);
             // split the time zone information into the sections
             $timezoneParts = explode('/', $tzNice);
             // adding the new time zone
             $tz = new TimeZoneData();
             $tz->Identifier = $timezone;
             $tz->Region = $timezoneParts[0];
             $tz->Name = array_pop($timezoneParts);
             $tz->write();
         }
         $this->message('Finished adding new time zone entries.');
     }
     // check if the titles in the dataobjects need to be refreshed
     if ($this->checkIfTitlesNeedRebuild()) {
         $this->rebuildTitles();
     }
 }
开发者ID:helpfulrobot,项目名称:spekulatius-silverstripe-timezones,代码行数:29,代码来源:PopulateTimeZonesTask.php

示例3: getSystemTimeZoneMenu

function getSystemTimeZoneMenu()
{
    $currentTZ = getCurrentTimeZone();
    echo "<select id=\"timezone\" name=\"timezone\">\n";
    $timezone_identifiers = DateTimeZone::listIdentifiers();
    foreach ($timezone_identifiers as $value) {
        if (preg_match('/^(America|Australia|Antartica|Arctic|Asia|Atlantic|Europe|Indian|Pacific)\\//', $value)) {
            if (!isset($continent)) {
                $continent = '';
            }
            $ex = explode("/", $value);
            //obtain continent,city
            if ($continent != $ex[0]) {
                if ($continent != "") {
                    $return = '</optgroup>' . "\n";
                }
                echo '<optgroup label="' . $ex[0] . '">' . "\n";
            }
            $city = $ex[1];
            $continent = $ex[0];
            echo '<option value="' . $value . '"' . ($value == $currentTZ ? " selected=\"selected\"" : "") . '>' . $city . (isset($ex[2]) ? "/" . $ex[2] : "") . '</option>' . "\n";
        }
    }
    echo "</optgroup>\n";
    echo "</select>\n";
}
开发者ID:krauseed11,项目名称:NetSUS,代码行数:26,代码来源:functions.php

示例4: _getGroups

 /**
  * Method to get a list of options for a list input.
  *
  * @return	array		An array of JHtml options.
  */
 protected function _getGroups()
 {
     if (strlen($this->value) == 0) {
         $conf =& JFactory::getConfig();
         $value = $conf->getValue('config.offset');
     }
     $zones = DateTimeZone::listIdentifiers();
     foreach ($zones as $zone) {
         // 0 => Continent, 1 => City
         $zone = explode('/', $zone);
         // Only use "friendly" continent names
         if ($zone[0] == 'Africa' || $zone[0] == 'America' || $zone[0] == 'Antarctica' || $zone[0] == 'Arctic' || $zone[0] == 'Asia' || $zone[0] == 'Atlantic' || $zone[0] == 'Australia' || $zone[0] == 'Europe' || $zone[0] == 'Indian' || $zone[0] == 'Pacific') {
             if (isset($zone[1]) != '') {
                 // Creates array(DateTimeZone => 'Friendly name')
                 $groups[$zone[0]][$zone[0] . '/' . $zone[1]] = str_replace('_', ' ', $zone[1]);
             }
         }
     }
     // Sort the arrays
     ksort($groups);
     foreach ($groups as $zone => $location) {
         sort($location);
     }
     // Merge any additional options in the XML definition.
     $groups = array_merge(parent::_getGroups(), $groups);
     return $groups;
 }
开发者ID:joebushi,项目名称:joomla,代码行数:32,代码来源:timezone.php

示例5: validateValue

 public function validateValue($value)
 {
     $list = \DateTimeZone::listIdentifiers();
     if (!in_array($value, $list)) {
         return ['Invalid timezone value', []];
     }
 }
开发者ID:yii-dream-team,项目名称:yii2-timezone-picker,代码行数:7,代码来源:Validator.php

示例6: load

    /**
     * Loads the timezone choices
     *
     * The choices are generated from the ICU function
     * \DateTimeZone::listIdentifiers(). They are cached during a single request,
     * so multiple timezone fields on the same page don't lead to unnecessary
     * overhead.
     *
     * @return array  The timezone choices
     */
    protected function load()
    {
        parent::load();

        if (count(self::$timezones) == 0) {
            foreach (\DateTimeZone::listIdentifiers() as $timezone) {
                $parts = explode('/', $timezone);

                if (count($parts) > 2) {
                    $region = $parts[0];
                    $name = $parts[1].' - '.$parts[2];
                } else if (count($parts) > 1) {
                    $region = $parts[0];
                    $name = $parts[1];
                } else {
                    $region = 'Other';
                    $name = $parts[0];
                }

                if (!isset(self::$timezones[$region])) {
                    self::$timezones[$region] = array();
                }

                self::$timezones[$region][$timezone] = str_replace('_', ' ', $name);
            }
        }

        $this->choices = self::$timezones;
    }
开发者ID:nacef,项目名称:symfony,代码行数:39,代码来源:TimezoneChoiceList.php

示例7: init

 /**
  * Initialize the Sele
  */
 public function init()
 {
     $this->setLabel('general settings');
     $this->add(array('type' => 'Zend\\Form\\Element\\Select', 'name' => 'language', 'options' => array('label' => 'choose your language', 'value_options' => array('en' => 'English', 'fr' => 'French', 'de' => 'German', 'it' => 'Italian', 'po' => 'Polish', 'ru' => 'Russian', 'tr' => 'Turkish', 'es' => 'Spanish'), 'description' => 'defines the languages of this frontend.')));
     $timezones = array_merge(\DateTimeZone::listIdentifiers(\DateTimeZone::AFRICA), \DateTimeZone::listIdentifiers(\DateTimeZone::AMERICA), \DateTimeZone::listIdentifiers(\DateTimeZone::ASIA), \DateTimeZone::listIdentifiers(\DateTimeZone::ATLANTIC), \DateTimeZone::listIdentifiers(\DateTimeZone::AUSTRALIA), \DateTimeZone::listIdentifiers(\DateTimeZone::EUROPE), \DateTimeZone::listIdentifiers(\DateTimeZone::INDIAN), \DateTimeZone::listIdentifiers(\DateTimeZone::PACIFIC));
     $this->add(array('type' => 'Zend\\Form\\Element\\Select', 'name' => 'timezone', 'options' => array('label' => 'choose your timzone', 'value_options' => $timezones, 'description' => 'defines your local timezone.')));
 }
开发者ID:cross-solution,项目名称:yawik,代码行数:10,代码来源:LocalizationSettingsFieldset.php

示例8: guessTimeZoneFromOffset

 /**
  * Guess the DateTimeZone for a given offset
  *
  * We first try to find a Etc/GMT* timezone, if that does not exist,
  * we try to find it manually, before falling back to UTC.
  *
  * @param mixed $offset
  * @param bool|int $timestamp
  * @return \DateTimeZone
  */
 protected function guessTimeZoneFromOffset($offset, $timestamp)
 {
     try {
         // Note: the timeZone name is the inverse to the offset,
         // so a positive offset means negative timeZone
         // and the other way around.
         if ($offset > 0) {
             $timeZone = 'Etc/GMT-' . $offset;
         } else {
             $timeZone = 'Etc/GMT+' . abs($offset);
         }
         return new \DateTimeZone($timeZone);
     } catch (\Exception $e) {
         // If the offset has no Etc/GMT* timezone,
         // we try to guess one timezone that has the same offset
         foreach (\DateTimeZone::listIdentifiers() as $timeZone) {
             $dtz = new \DateTimeZone($timeZone);
             $dateTime = new \DateTime();
             if ($timestamp !== false) {
                 $dateTime->setTimestamp($timestamp);
             }
             $dtOffset = $dtz->getOffset($dateTime);
             if ($dtOffset == 3600 * $offset) {
                 return $dtz;
             }
         }
         // No timezone found, fallback to UTC
         \OCP\Util::writeLog('datetimezone', 'Failed to find DateTimeZone for offset "' . $offset . "'", \OCP\Util::DEBUG);
         return new \DateTimeZone($this->getDefaultTimeZone());
     }
 }
开发者ID:Kevin-ZK,项目名称:vaneDisk,代码行数:41,代码来源:datetimezone.php

示例9: timezones_from_countryCode

function timezones_from_countryCode($country_code, $country_name)
{
    $dt = new DateTime();
    // create a list of timezones based on that country code..
    $timezones = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $country_code);
    $timezone_offset = [];
    // instantiate timezone_offset array
    foreach ($timezones as $timezone) {
        $tz = new DateTimeZone($timezone);
        $timezone_offset[$timezone] = $tz->getOffset(new DateTime());
    }
    // sort by offset
    asort($timezone_offset);
    // format display of timezone and offset
    foreach ($timezone_offset as $raw_timezone => $offset) {
        $dt->setTimezone(new DateTimeZone($raw_timezone));
        $timezone_abbr = $dt->format('T');
        $offset_prefix = $offset < 0 ? '-' : '+';
        $offset_formatted = gmdate('H:i', abs($offset));
        $pretty_offset = "UTC{$offset_prefix}{$offset_formatted}";
        // if( ($pos = strpos($raw_timezone, '/') ) !== false ) { // remove 'America/'
        // 	$clean_timezone = substr($raw_timezone, $pos+1);
        // 	if( ($pos = strpos($clean_timezone, '/')) !== false ) { // remove second level '.../'
        // 		$clean_timezone = substr($clean_timezone, $pos+1);
        // 	}
        // }
        // $clean_timezone = str_replace('_',' ',$clean_timezone); // remove the '_' in city names
        $clean_timezone = User::clean_city($raw_timezone);
        echo "<option value=\"{$raw_timezone}\">(" . $pretty_offset . ") " . $clean_timezone . ' (' . $timezone_abbr . ')</option>';
    }
}
开发者ID:songfarm-david,项目名称:songfarm-jul2015,代码行数:31,代码来源:timezonesFromCountryCode.php

示例10: processRequest

 public function processRequest(AphrontRequest $request)
 {
     $user = $request->getUser();
     $username = $user->getUsername();
     $pref_time = PhabricatorUserPreferences::PREFERENCE_TIME_FORMAT;
     $pref_date = PhabricatorUserPreferences::PREFERENCE_DATE_FORMAT;
     $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY;
     $preferences = $user->loadPreferences();
     $errors = array();
     if ($request->isFormPost()) {
         $new_timezone = $request->getStr('timezone');
         if (in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) {
             $user->setTimezoneIdentifier($new_timezone);
         } else {
             $errors[] = pht('The selected timezone is not a valid timezone.');
         }
         $preferences->setPreference($pref_time, $request->getStr($pref_time))->setPreference($pref_date, $request->getStr($pref_date))->setPreference($pref_week_start, $request->getStr($pref_week_start));
         if (!$errors) {
             $preferences->save();
             $user->save();
             return id(new AphrontRedirectResponse())->setURI($this->getPanelURI('?saved=true'));
         }
     }
     $timezone_ids = DateTimeZone::listIdentifiers();
     $timezone_id_map = array_fuse($timezone_ids);
     $form = new AphrontFormView();
     $form->setUser($user)->appendChild(id(new AphrontFormSelectControl())->setLabel(pht('Timezone'))->setName('timezone')->setOptions($timezone_id_map)->setValue($user->getTimezoneIdentifier()))->appendChild(id(new AphrontFormSelectControl())->setLabel(pht('Time-of-Day Format'))->setName($pref_time)->setOptions(array('g:i A' => pht('12-hour (2:34 PM)'), 'H:i' => pht('24-hour (14:34)')))->setCaption(pht('Format used when rendering a time of day.'))->setValue($preferences->getPreference($pref_time)))->appendChild(id(new AphrontFormSelectControl())->setLabel(pht('Date Format'))->setName($pref_date)->setOptions(array('Y-m-d' => pht('ISO 8601 (2000-02-28)'), 'n/j/Y' => pht('US (2/28/2000)'), 'd-m-Y' => pht('European (28-02-2000)')))->setCaption(pht('Format used when rendering a date.'))->setValue($preferences->getPreference($pref_date)))->appendChild(id(new AphrontFormSelectControl())->setLabel(pht('Week Starts On'))->setOptions($this->getWeekDays())->setName($pref_week_start)->setCaption(pht('Calendar weeks will start with this day.'))->setValue($preferences->getPreference($pref_week_start, 0)))->appendChild(id(new AphrontFormSubmitControl())->setValue(pht('Save Account Settings')));
     $form_box = id(new PHUIObjectBoxView())->setHeaderText(pht('Date and Time Settings'))->setFormSaved($request->getStr('saved'))->setFormErrors($errors)->setForm($form);
     return array($form_box);
 }
开发者ID:pugong,项目名称:phabricator,代码行数:30,代码来源:PhabricatorDateTimeSettingsPanel.php

示例11: all

 public static function all()
 {
     $timeZones = [];
     $timeZonesOutput = [];
     $now = new \DateTime('now', new \DateTimeZone('UTC'));
     foreach (\DateTimeZone::listIdentifiers(\DateTimeZone::ALL) as $timeZone) {
         $now->setTimezone(new \DateTimeZone($timeZone));
         $timeZones[] = [$now->format('P'), $timeZone];
     }
     if (self::$sortBy == static::SORT_OFFSET) {
         array_multisort($timeZones);
     }
     foreach ($timeZones as $timeZone) {
         $content = preg_replace_callback("/{\\w+}/", function ($matches) use($timeZone) {
             switch ($matches[0]) {
                 case '{name}':
                     return $timeZone[1];
                 case '{offset}':
                     return $timeZone[0];
                 default:
                     return $matches[0];
             }
         }, self::$template);
         $timeZonesOutput[$timeZone[1]] = $content;
     }
     return $timeZonesOutput;
 }
开发者ID:ramialcheikh,项目名称:quickforms,代码行数:27,代码来源:Timezone.php

示例12: getEshopTimezone

 /**
  * returns eshop timezone
  * @return DateTimeZone|null
  */
 private function getEshopTimezone()
 {
     if (version_compare(VERSION, '2.0.1.0', '>=')) {
         $keyName = 'code';
     } elseif (version_compare(VERSION, '1.5', '>=')) {
         $keyName = 'group';
     }
     $result = $this->connection->query("SELECT " . "  `z`.`code` as code " . " FROM  {$this->getTableName('setting')} as s " . " INNER JOIN {$this->getTableName('zone')} as z " . " ON `s`.`value` = `z`.`zone_id` " . " WHERE `s`.`{$keyName}` = 'config' " . " AND " . " `s`.`key` = 'config_zone_id'; ")->fetchAll();
     if (count($result) == 0 || !isset($result[0]) || !isset($result[0][$keyName])) {
         return null;
     }
     $code = $result[0][$keyName];
     $relativeTimezones = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $code);
     if (!$relativeTimezones || empty($relativeTimezones)) {
         return null;
     }
     $relativeTimezone = null;
     foreach ($relativeTimezones as $timezone) {
         $relativeTimezone = $timezone;
         break;
     }
     if ($relativeTimezone === null) {
         return null;
     }
     return new DateTimeZone($relativeTimezone);
 }
开发者ID:MonkeyData,项目名称:php-opencart-xml-feed-generator,代码行数:30,代码来源:MonkeyDataXmlModel.php

示例13: get_nearest_timezone

 public static function get_nearest_timezone($cur_lat, $cur_long, $country_code = '')
 {
     $timezone_ids = $country_code ? DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $country_code) : DateTimeZone::listIdentifiers();
     if ($timezone_ids && is_array($timezone_ids) && isset($timezone_ids[0])) {
         $time_zone = '';
         $tz_distance = 0;
         //only one identifier?
         if (count($timezone_ids) == 1) {
             $time_zone = $timezone_ids[0];
         } else {
             foreach ($timezone_ids as $timezone_id) {
                 $timezone = new DateTimeZone($timezone_id);
                 $location = $timezone->getLocation();
                 $tz_lat = $location['latitude'];
                 $tz_long = $location['longitude'];
                 $theta = $cur_long - $tz_long;
                 $distance = sin(deg2rad($cur_lat)) * sin(deg2rad($tz_lat)) + cos(deg2rad($cur_lat)) * cos(deg2rad($tz_lat)) * cos(deg2rad($theta));
                 $distance = acos($distance);
                 $distance = abs(rad2deg($distance));
                 // echo '<br />'.$timezone_id.' '.$distance;
                 if (!$time_zone || $tz_distance > $distance) {
                     $time_zone = $timezone_id;
                     $tz_distance = $distance;
                 }
             }
         }
         return $time_zone;
     }
     return 'unknown';
 }
开发者ID:nitinprajapati1404,项目名称:YiiGeneralAdmin,代码行数:30,代码来源:TimeZone.php

示例14: ReadData

 function ReadData($targetstring, &$map, &$item)
 {
     $data[IN] = NULL;
     $data[OUT] = NULL;
     $data_time = 0;
     $itemname = $item->name;
     $matches = 0;
     if (preg_match("/^time:(.*)\$/", $targetstring, $matches)) {
         $timezone = $matches[1];
         $timezone_l = strtolower($timezone);
         $timezone_identifiers = DateTimeZone::listIdentifiers();
         foreach ($timezone_identifiers as $tz) {
             if (strtolower($tz) == $timezone_l) {
                 debug("Time ReadData: Timezone exists: {$tz}\n");
                 $dateTime = new DateTime("now", new DateTimeZone($tz));
                 $item->add_note("time_time12", $dateTime->format("h:i"));
                 $item->add_note("time_time12ap", $dateTime->format("h:i A"));
                 $item->add_note("time_time24", $dateTime->format("H:i"));
                 $item->add_note("time_timezone", $tz);
                 $data[IN] = $dateTime->format("H");
                 $data_time = time();
                 $data[OUT] = $dateTime->format("i");
                 $matches++;
             }
         }
         if ($matches == 0) {
             warn("Time ReadData: Couldn't recognize {$timezone} as a valid timezone name [WMTIME02]\n");
         }
     } else {
         // some error code to go in here
         warn("Time ReadData: Couldn't recognize {$targetstring} \n");
     }
     debug("Time ReadData: Returning (" . ($data[IN] === NULL ? 'NULL' : $data[IN]) . "," . ($data[OUT] === NULL ? 'NULL' : $data[OUT]) . ",{$data_time})\n");
     return array($data[IN], $data[OUT], $data_time);
 }
开发者ID:geldarr,项目名称:hack-space,代码行数:35,代码来源:WeatherMapDataSource_time.php

示例15: _validateTimeZone

 /**
  * Validate a Timezone name
  *
  * @param     string $timezone Time zone (e.g. 'Europe/London')
  *
  * @return     boolean                        Success or failure
  */
 public static function _validateTimeZone($timezone)
 {
     if (in_array($timezone, DateTimeZone::listIdentifiers())) {
         return true;
     }
     return false;
 }
开发者ID:TheTypoMaster,项目名称:SPHERE-Framework,代码行数:14,代码来源:TimeZone.php


注:本文中的DateTimeZone::listIdentifiers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。