3

このコードは私の開発サーバーでは完全に機能しますが、別のサーバーで実行すると失敗します。

$formatter = new IntlDateFormatter('en-GB', IntlDateFormatter::LONG, IntlDateFormatter::NONE, 'Europe/London');
var_dump($formatter->format(new DateTime('2012-06-01')));
var_dump($formatter->getErrorMessage() . ' ' . $formatter->getErrorCode());

私に与える:

bool(false) 
string(14) "U_ZERO_ERROR 0" 

誰かが理由を知っていますか?エラーが報告されないのは特に奇妙です(U_ZERO_ERRORがデフォルトです)。ありがとう。

編集:

比較のために、ローカルで次のようになります。

string(11) "1 June 2012" 
string(14) "U_ZERO_ERROR 0" 

を含む他のロケールでも同じ問題が発生していen-USます。

4

1 に答える 1

3

わかりました。PHP 5.3.4+ のみが DateTime オブジェクトを format に渡すことができます。古いバージョンでは、次のことを行う必要があります。

$date = new DateTime('2012-06-01');
$formatter->format($date->getTimestamp());
于 2012-09-26T12:01:23.560 に答える