我有一个表单,其中包含如下HTML代码:
<div>
<label for="dateCheckin">Date Checking in</label>
<input type="date" name="dateCheckin">
</div>
我尝试使用PHP检查所选日期是否距离当前日期至少2周。当我运行代码时,有一个未定义的索引:dateCheckin。
$checkinDate = strtotime($_POST['dateCheckin']);
if ($checkinDate){
$today = time();
$diff = $checkinDate->diff($today)->days;
$diff /= 7;
$diff = floor($diff);
if ($diff < 2){
echo "Please enter a valid date.";
}
} else{
echo "Please enter a valid date.";
}
试试这个。我建议您使用DateTime()
对象而不是time()
函数。
$checkinDate = new DateTime('2021-05-14 09:52:52'); //use your actual POST value here
if ($checkinDate){
$today = new DateTime();
$diff = $checkinDate->diff($today);
$days= $diff->format('%a');
if($days>14){
echo "2 Weeks done. Please enter a new date";
}
else{
echo "Not done 2 weeks yet.";
}
}
约会很棘手,而且你做这件事的方式有点难。
我强烈建议使用DateTime
对象,结果会是这样的:
$checkinDate = DateTime::createFromFormat('Y-m-d H:i:s', $_POST['dateCheckin']);
if ($checkinDate) {
$twoWeeksDate = new DateTime('now + 2 weeks');
if($checkinDate < $twoWeeksDate) {
echo "Please select a date date before: " . $twoWeeksDate->format('d/m/Y');
}
} else {
echo "Please enter a valid date.";
}
请确保将日期格式更改为输入和输出的正确格式。
您的数据没有传递到POST方法,因此您得到了一个未定义的索引错误
<form action="Your Action page" Method="POST">
<label for="dateCheckin">Date Checking in</label>
<input type="date" name="dateCheckin">
<button type="submit"></button>
</form>