日付関連の小ネタ
片や。
PHPでstrotimeは割とよく使われる関数かなぁ、と思います(DateTimeクラスのコンストラクタに渡す引数、と読み替えてもよいです)。
片や。
善し悪しはとりあえず置いておくとしまして、MySQLを使っていると「0000-00-00」というブツが出てくることは、まぁ時々*1、あります。
んで。
<?php $t = strtotime('0000-00-00'); var_dump($t); echo date(DATE_ATOM, $t), "\n"; echo "\n"; $t = strtotime('0000-00-00 00:00:00'); var_dump($t); echo date(DATE_ATOM, $t), "\n"; echo "\n"; $date = new \DateTime('0000-00-00'); echo $date->format(\DateTime::ATOM), "\n";
それを食わせてみると
int(-62170016400)
-0001-11-30T00:00:00+09:00
int(-62170016400)
-0001-11-30T00:00:00+09:00
-0001-11-30T00:00:00+09:00
なんとも味わい深い出力が得られるんですねぇ……エラー時、strtotimeならfalse、DateTimeなら例外を出して頂ける事を期待するんですが、その辺も特に出てこない orz
ちょっと(ある意味)興味深い事例だったので、めも。
………お願いすなおにエラーにして orz
*1:しょっちゅう?