Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比较日期_Php_Date - Fatal编程技术网

Php 比较日期

Php 比较日期,php,date,Php,Date,嗨,我想要一些比较日期的帮助。这是我的密码 date_default_timezone_set('Europe/London'); // get today's date $datetoday = date('Y-m-d'); if ($datetoday > $pickup_date) { array_push($errors, "this pickup date is invalid, it has already passed"); 取货日期是我从表格中收集的值,以下是表格

嗨,我想要一些比较日期的帮助。这是我的密码

date_default_timezone_set('Europe/London');

// get today's date
$datetoday = date('Y-m-d');

if ($datetoday > $pickup_date) {
array_push($errors, "this pickup date is invalid, it has already passed");  
取货日期是我从表格中收集的值,以下是表格的代码:

<div class="input-group">
    <label>Pickup Date</label>
    <input type="date" name="pickup_date" >
</div>

取货日期
我想要的是用户不能将取货日期设置为已经过去的日期。我的系统是预订系统。他们应该只能设置在今天日期之后的日期

但是当前的代码不起作用,它仍然允许用户在今天的日期之前和之后预订日期。我甚至尝试在比较日期的地方切换比较运算符


谢谢,非常感谢您的帮助。

您不是在比较日期,而是在比较字符串。尝试改用:

date\u default\u timezone\u set(“欧洲/伦敦”);
$picking_date=\DateTime::createFromFormat('Y-m-d',$_POST['picking_date']);
//得到今天的日期
$datetoday=\DateTime::create('midnight');
如果($datetoday>$picku\u date){
数组_push($errors,“此拾取日期无效,已过”);
}

您不是在比较日期,而是在比较字符串。尝试改用:

date\u default\u timezone\u set(“欧洲/伦敦”);
$picking_date=\DateTime::createFromFormat('Y-m-d',$_POST['picking_date']);
//得到今天的日期
$datetoday=\DateTime::create('midnight');
如果($datetoday>$picku\u date){
数组_push($errors,“此拾取日期无效,已过”);
}

取货日期的格式是什么?要进行故障排除,您可以尝试输出两个值:
var_dump($datetoday);var_转储($picku_date)。您可能需要
date('Ymd')
,或者只需使用
time()
,并使用
strotime()
将表单日期转换为时间戳。鉴于
的默认格式为“YYYY-MM-DD”,这里有一个。提供的答案是否有用?你应该投赞成票▲ 如果你有这样做的声誉,所有的答案都是有帮助的。然后,您应该标记为已接受✓ 最能回答你问题的答案。如果没有令人满意的答案,请提供反馈意见,或编辑您的问题以澄清问题。
$picku\u date
的格式是什么?要进行故障排除,您可以尝试输出两个值:
var_dump($datetoday);var_转储($picku_date)。您可能需要
date('Ymd')
,或者只需使用
time()
,并使用
strotime()
将表单日期转换为时间戳。鉴于
的默认格式为“YYYY-MM-DD”,这里有一个。提供的答案是否有用?你应该投赞成票▲ 如果你有这样做的声誉,所有的答案都是有帮助的。然后,您应该标记为已接受✓ 最能回答你问题的答案。如果没有一个答案令人满意,请提供反馈意见,或编辑您的问题以澄清问题。我同意这是一个很好的建议,但比较了相同格式的两个字符串。我同意这是一个很好的建议,但比较了相同格式的两个字符串。