1

私が取り組んでいたプログラムでは、データをループしており、特定のデータが日付であるかどうかを知る必要がありました。

簡単にするために、 という関数を作成しました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;
}
4

1 に答える 1

2

私は実際にこれを理解しました。 strtotime、形式として、コロンなしの時間を受け入れることができます。

したがって、はとstrtotime(165000)同じstrtotime('16:50:00')です。

http://ideone.com/Z4hwQ

于 2011-01-21T20:11:38.790 に答える