gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

日付関連の小ネタ

片や。
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:しょっちゅう?