2016-09-10 52 views
0

Этот код работает как на моем тестовом компьютере, но не работает. Не уверен, что случилось с установкой, единственная разница - это версия ICU.PHP IntlDateFormatter :: format возвращает пустое значение для часового пояса

<?php 
$timeZone = 'Asia/Shanghai'; 
date_default_timezone_set($timeZone); 
echo date("c") . "\n"; 
$formatter = new IntlDateFormatter('en', IntlDateFormatter::NONE, IntlDateFormatter::NONE, $timeZone, NULL, "yyyy-MM-dd'T'HH:mm:ssxxx"); 
echo $formatter->format(time()) . "\n"; 
$formatter = new IntlDateFormatter('en', IntlDateFormatter::NONE, IntlDateFormatter::NONE, $timeZone, NULL, "V X x v O Z z"); 
echo $formatter->format(time()) . "\n"; 

Ожидаемый результат (тест установки, PHP 5.6.25, междунар версия 1.1.0, ICU версия 56,1, ICU Data версия 56,1):

2016-09-10T12:42:30+08:00 
2016-09-10T12:42:30+08:00 
cnsha +08 +08 China Time GMT+8 +0800 GMT+8 

Фактический выход (производство, PHP 5.6.25 , междунар версия 1.1.0, ICU версия для 50.1.2 ICU Data 50,1):

2016-09-10T12:43:22+08:00 
2016-09-10T12:43:22 
GMT+08:00 

ответ

0

Да, это была ICU версия. Обновление до 57.0 устраняло проблему

Смежные вопросы