-1

重複の可能性:
日付が特定の範囲内にあるかどうかを確認するにはどうすればよいですか?
日付(ユーザーが入力)が指定された範囲内にあるかどうかを確認する方法(日付形式:-日月、つまり:-1 6月)

日付が定義された範囲内にあるかどうかを調べようとしています。私は次のコードを使用しています:

    $apple='25 March';
    $udate= date('d F',strtotime($apple));

    echo $udate;
    $startDate='21 March';
    $realStartDate= date('d F',strtotime($startDate)) ;
    echo $realStartDate;
    $endDate='19 April';
    $realEndDate= date('d F',strtotime($endDate)) ;
    if ($udate >= $realStartDate && $udate <= $realEndDate ) {
        echo 'within tange';
    }
    else{
        echo 'Not in range';
    }
    ?>

どこが間違っているのですか?

4

5 に答える 5

2

これを試してみてください......

<?php
        $udate          = '25 March';
        $udateTimestamp = strtotime($udate);


        $startDate          = '21 March';
        $startDateTimestamp = strtotime($startDate);

        $endDate           = '19 April';
        $eEndDateTimestamp = strtotime($endDate);

        if ($udateTimestamp >= $startDateTimestamp && $udateTimestamp <= $eEndDateTimestamp)
        {
                echo 'within tange';
        }
        else
        {
                echo 'Not in range';
        }
?>
于 2012-04-26T10:03:52.617 に答える
1

文字列表現ではなくタイムスタンプを比較してください!

if(strtotime($apple) < strtotime($endDate) && strtotime($apple) > strtotime($startDate)){
 // All ok!
}
于 2012-04-26T09:44:55.127 に答える
0

このような

if(strtotime($givendate) > strtotime('3/21/xxxx') && strtotime($givendata) < strtotime('4/19/xxxx')) {
   // Its within range
}
于 2012-04-26T07:44:15.537 に答える
0

これを試して

 if (strtotime($udate) >= strtotime($realStartDate) && strtotime($udate) <= strtotime($realEndDate) ) {
    echo 'within tange';
}
else{
    echo 'Not in range';
}
于 2012-04-26T09:48:52.190 に答える
0

使用できますDateTime

$userDate = new DateTime("2012-03-01");

if ( $userDate > new DateTime("2012-03-21 00:00:00") &&  $userDate < new DateTime("2012-04-19 23:59:59"))
{
   // In Range 
}

フォーマットが(7月1日)の場合、関数に入れる

if (inRange ( "1 June", "3 March", "7 December" )) {
    echo "In Range";
} else {
    echo "Out Of Range";
}

function inRange($dateCheck, $dateFrom, $dateTo) {

    $date = DateTime::createFromFormat ( "d F", $dateCheck );
    $date1 = DateTime::createFromFormat ( "d F", $dateFrom );
    $date2 = DateTime::createFromFormat ( "d F", $dateTo );

    if ($date > $date1 && $date < $date2) {
        return true;
    }

    return false;

}
于 2012-04-26T07:46:28.633 に答える