<?php

ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "pt_PT");
ini_set("date.timezone", 'Atlantic/Azores');
$df = new IntlDateFormatter('pt_PT', 0, 0, 'Europe/Minsk');
$df->setTimeZoneId('Europe/Madrid');
?>
==DONE==
示例#2
0
 private function formatTimestamps(\IntlDateFormatter $formatter, $regex, array $timestamps)
 {
     $pattern = $formatter->getPattern();
     $timezone = $formatter->getTimezoneId();
     if (version_compare(\PHP_VERSION, '5.5.0-dev', '>=')) {
         $formatter->setTimeZone(\DateTimeZone::UTC);
     } else {
         $formatter->setTimeZoneId(\DateTimeZone::UTC);
     }
     if (preg_match($regex, $pattern, $matches)) {
         $formatter->setPattern($matches[0]);
         foreach ($timestamps as $key => $timestamp) {
             $timestamps[$key] = $formatter->format($timestamp);
         }
         // I'd like to clone the formatter above, but then we get a
         // segmentation fault, so let's restore the old state instead
         $formatter->setPattern($pattern);
     }
     if (version_compare(\PHP_VERSION, '5.5.0-dev', '>=')) {
         $formatter->setTimeZone($timezone);
     } else {
         $formatter->setTimeZoneId($timezone);
     }
     return $timestamps;
 }
示例#3
0
 /**
  * Use intl extension for translation
  * return the self::MENU string with each name of timezone translated
  * into language of locale. Value of timezone will remain the same
  *
  * @param $locale
  *
  * @return mixed
  */
 protected static function translateOptions($locale)
 {
     d('locale: ' . $locale);
     $ts = time();
     $Formatter = new \IntlDateFormatter($locale, \IntlDateFormatter::NONE, \IntlDateFormatter::NONE, "UTC", NULL, 'vvvv');
     $ret = \preg_replace_callback('/value="([a-zA-Z_\\/]+)">([^<]*)</', function ($matches) use($Formatter, $ts) {
         $Formatter->setTimeZoneId($matches[1]);
         $res = $Formatter->format($ts);
         return 'value="' . $matches[1] . '">' . $res . '<';
     }, self::MENU);
     return $ret;
 }