使用PHP从表单输入进行日期验证



我有一个表单,其中包含如下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>

相关内容

  • 没有找到相关文章

最新更新