Php intlDateFormatter夏季时间

Php intlDateFormatter夏季时间,php,datetime,symfony,intl,Php,Datetime,Symfony,Intl,Symfony 2在自己的DateTimeToLocalizedStringTransformer中使用intlDateFormatter 但它不能正常工作 $tz = new DateTimeZone('Europe/Moscow'); $date = new DateTime('1 march', $tz); echo "PHP: " . phpversion() . "<br/>\n"; echo "Intl: " . phpversion('intl') . "<b

Symfony 2在自己的DateTimeToLocalizedStringTransformer中使用intlDateFormatter 但它不能正常工作

$tz = new DateTimeZone('Europe/Moscow');
$date = new DateTime('1 march', $tz);


echo "PHP: " . phpversion() . "<br/>\n";
echo "Intl: " . phpversion('intl') . "<br/>\n";
echo "<br/>\n";

echo "TZ: " . $tz->getName() . "<br/>\n";

echo "Native:<br/>\n";
echo $date->format('H:i:s d.m.Y');
echo "<br/>\n";


echo "Intl:<br/>\n";
$formatter = new IntlDateFormatter('RU_ru', IntlDateFormatter::FULL, IntlDateFormatter::FULL, $tz->getName());
echo $formatter->format($date);
echo "\n";
我试着

然后重新安装libicu44,我明白了:

<?php
$tz = new DateTimeZone('UTC');
$date = new DateTime('1 march', $tz);

echo "ICU data version: ", INTL_ICU_DATA_VERSION, "\n";
$formatter = new IntlDateFormatter('RU_ru', IntlDateFormatter::FULL,
        IntlDateFormatter::FULL, "Europe/Moscow");
echo $formatter->format($date), "\n";

那么,我如何更新ICU数据?这样地?或者简单地用最新版本重新安装libicu?libicu48用于example@user1747168您可以按照该过程操作,但要注意,如果您的包管理器管理libicu,则数据可能会在更新时被重写。如果您想更新ICU,则必须重新编译PHP intl扩展(例如通过使用pecl重新安装)。
pecl install timezonedb
pecl install intl
<?php
$tz = new DateTimeZone('UTC');
$date = new DateTime('1 march', $tz);

echo "ICU data version: ", INTL_ICU_DATA_VERSION, "\n";
$formatter = new IntlDateFormatter('RU_ru', IntlDateFormatter::FULL,
        IntlDateFormatter::FULL, "Europe/Moscow");
echo $formatter->format($date), "\n";
ICU data version: 4.4.0.1 пятница, 1 марта 2013 г. 3:00:00 Московское стандартное время ICU data version: 49.1 пятница, 1 марта 2013 г., 4:00:00 Московское стандартное время