私が取り組んでいたプログラムでは、データをループしており、特定のデータが日付であるかどうかを知る必要がありました。
簡単にするために、 という関数を作成しましたis_date
。これは次のようになります。
function is_date($date){
return strtotime($date) !== FALSE;
}
これは機能しているように見えましたが、何らかの理由で、TRUE
int (日付ではない) に対して返されました。
例えば:
is_date('bob') //FALSE
is_date('01/05/2009') //TRUE
is_date('March 16, 2010') //TRUE
is_date(165000) //TRUE
is_date(165000)
がTRUE を返すのはなぜですか? strtotime
165000 をタイムスタンプに変換するにはどうすればよいですか?
修正として、is_date
関数を次のように変更しました。
function is_date($date){
return !is_numeric($date) && strtotime($date) !== FALSE;
}