0

DateTime::createFromFormat正しく機能していないようですが、理由や修正方法を知っている人はいますか?

このコードを考えると:

var_dump(DateTime::createFromFormat('m', '02')->format('m'));
var_dump(DateTime::createFromFormat('n', '2')->format('n'));

私の期待する出力は

02
2

しかし、私は実際に次のようになります。

03
3

例: http ://codepad.viper-7.com/e4hns6

私はこれを以下を含む多数のサーバーでテストしました:

  • PHP5.4に勝つ
  • Linux PHP 5.3
  • バイパーコードパッド
4

1 に答える 1

3

マニュアルから:

「フォーマットに文字!が含まれていない場合、フォーマットで指定されていない生成された時間の部分は、現在のシステム時刻に設定されます。」

以下は期待どおりに機能するはずです。

var_dump(DateTime::createFromFormat('!m', '02')->format('m'));
var_dump(DateTime::createFromFormat('!n', '2')->format('n'));

# result:
string(2) "02"
string(1) "2"
于 2012-04-30T04:05:25.803 に答える