2

A、B、Cの3つの日付があります。

A = 2013-08-10 10:00
B = 2013-08-10 12:00
C = 2013-08-10 10:22

私がやろうとしているのは、C が A と B の中にあるかどうかを確認することです。誰でもこれを行う方法について何か考えがありますか?

私は運がなかったのでこれを試しました

    if ($time >= $date_start && $time <= $date_end)
    {
        echo "is between\n";
    } else {
        echo 'no';
    }
4

4 に答える 4

11

それらを UNIX タイムスタンプに変換して比較できます。

$A = strtotime($A); //gives value in Unix Timestamp (seconds since 1970)
$B = strtotime($B);
$C = strtotime($C);

if ((($C < $A) && ($C > $B)) || (($C > $A) && ($C < $B)) ){
  echo "Yes '$C' is between '$A' and '$B'";
 }
于 2013-08-13T12:54:54.117 に答える
4

次のコードを使用して、php の日付値を比較します

$a = new DateTime("2013-08-10 10:00");
$b = new DateTime("2013-08-10 12:00");
$c = new DateTime("2013-08-10 10:22");

if ($a < $c && $c < $b ) {
    return true;
}
于 2013-08-13T13:03:38.140 に答える
3

strtotime 関数を使用します。

$A = "2013-08-10 10:00";
$B = "2013-08-10 12:00";
$C = "2013-08-10 10:22";

if (strtotime($C) > strtotime($A) && strtotime($C) < strtotime($B)){
    echo "The time is between time A and B.";
} else {
    echo "It is not between time A and B.";
}
于 2013-08-13T12:52:10.357 に答える
-1

DateTimeクラスを使用します。

$A = '2013-08-10 10:00';
$B = '2013-08-10 12:00';
$C = '2013-08-10 10:22';

$dateA = DateTime::createFromFormat('Y-m-d H:m', $A);
$dateB = DateTime::createFromFormat('Y-m-d H:m', $B);
$dateC = DateTime::createFromFormat('Y-m-d H:m', $C);

if ($dateA >= $dateB && $dateA <= $dateC)
{
  echo "$dateA is between $dateB and $dateC";
}
于 2013-08-13T12:57:38.557 に答える