PHP 日期比较(2 周)


PHP date comparison (2 weeks)

$todaysDate = date("Y-m-d");
$maxBookingDate=strtotime('+2 weeks', $todaysDate);
$dateEntered = DateTime::createFromFormat('d/m/Y', $_POST["Date"]);
$tableDate =$dateEntered->format('Y-m-d');
if ($tableDate < $todaysDate){
    echo "Date must be in the future";
}
if ($tabledate > $maxBookingDate){
    echo "Date must be no more than 2 weeks in advance";
}
日期

比较以确保用户输入的日期不超过提前两周不起作用,我做错了什么?

你可以一直使用DateTime类,以便更容易比较:

$todaysDate = new DateTime();
$maxBookingDate = new DateTime('+2 weeks');
$dateEntered = DateTime::createFromFormat('d/m/Y', $_POST['Date']);
if ($dateEntered < $todaysDate){
    echo "Date must be in the future";
} elseif ($dateEntered > $maxBookingDate){
    echo "Date must be no more than 2 weeks in advance";
}

在您的代码中:

$todaysDate是一个字符串,您在strtotime()中将其作为第二个参数输入,这是不正确的用法。第二个参数需要数值(时间戳)。

在你的 if else 语句中,你正在比较字符串。您应该将它们作为时间戳或 DateTime 对象进行比较,就像上面的答案一样。