2016-09-10 13 views
0

このコードは、テストマシンでは正常に動作しますが、実稼働環境では失敗します。何がセットアップに間違っているかわからない、唯一の違いは私が推測するICUのバージョンです。PHP IntlDateFormatter :: formatは、タイムゾーンの空の値を返します

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:出力(テスト・セットアップ、PHP 5.6.25、インターナショナルバージョン1.1.0、ICUバージョン56.1、ICUデータバージョン56.1)期待

<?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"; 

、インターナショナルバージョン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にアップデートすると問題が解決しました

関連する問題