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