2016-09-10 22 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 데이터 버전 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 데이터 버전 50.1) :

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

답변

0

네, ICU 버전이었다. 57.0으로 업데이트하면 문제가 해결됩니다.