phpのDateTimeは前々から思っていたが気持ちが悪い

php; title: ; notranslate" title="">
// Your code here!
$date = new DateTime("84-12-14");
echo $date->format('Y-m-d H:i:s'). "\n";

$date = new DateTime("104-12-14");
echo $date->format('Y-m-d H:i:s'). "\n";

$date = new DateTime("14-12-14");
echo $date->format('Y-m-d H:i:s'). "\n";

上記の結果は以下の通りになる。

1984-12-14 00:00:00
0104-12-14 00:00:00
2014-12-14 00:00:00

おそらく内部的に、西暦が2桁の場合は四捨五入して50以上ならば19XX年代、50未満ならば2000年代、100以上はそのまま出力するみたいに「よきにはからってくれている」んだけど、前ゼロでそのまま出力してくれるとかのほうが良いと思うんだが。

あと、2019/02/31とかを設定すると、勝手に2019/03/03とかに変換してくれるけど…これもなにかのバグになりそうなのでエラーでいい気がする。正常に動いてくれるほうが日付の差分を得る場合などには嬉しいシーンもあるのは分かるんだけど、なんかしっくりこない。

コメント

タイトルとURLをコピーしました