2011-01-26 22 views
1

変更しようとすると、特定の日付に基づいて含まれます。この作品のようなものでしょう:PHP日付に基づいて含む

if (date('m/d/Y') < date('m/d/Y', strtotime("01/10/2011"))) { 
    //Display something 
} 
else if (date ('m/d/Y') >= date('m/d/Y', strtotime("01/10/2011")) && date ('m/d/Y') <= date("m/d/Y', strtotime("05/10/2011"))   
    // Display something else 
else { 
    //Display something different 
} 

私が正しくのstrtotime関数を理解していた場合、私はそれがうまくいく把握でしょう。しかし、私はそれを正しく理解しているとは分かりません。お知らせ下さい!

答えて

3

dateは、あなたが任意の有用な結果と2011-02-23のような別の文字列に比較することはできません2011-01-26のような文字列を返します。同じパラメータで何度も何度も同じ機能を使用していない、このようなシナリオで

if (time() /* (now) */ < strtotime('2011-01-26')) ... 
0

文字列の代わりにタイムスタンプ(strtotimetimeが返されます)を比較する必要があります(dateが返す)。

if (time() < strtotime('01/10/2011')) { 
    //Display something 
} 
else if (time() >= strtotime('01/10/2011') && time() <= strtotime('05/10/2011')) 
    // Display something else 
else { 
    //Display something different 
} 

編集:あなたがそれらを解析するためにPHPを必要としないときにも、単一引用符を使用し、このよう

。彼らは少し速く動作します。

+1

:あなたはstrtotimeまたはtimeによって生成されるようなタイムスタンプを比較する必要があります。代わりに、値を変数に格納して使用します。 1つの理由は処理の増加であり、もう1つの理由は、 'time()'が3つの関数呼び出しすべてで同じでないという値です。 –

1

date文字列を返します。その関数の戻り値を比較すると、文字列を比較しています。 'm/d/Y'形式の日付の文字列比較では、期待通りに日付を比較しません(ただし、standard formatを使用した場合)。

私はあなたが直接、タイムスタンプを比較するお勧め:

if (time() < strtotime('2011-01-01')) { /* include something */ } 
関連する問題