php中日期的验证

php中日期的验证,php,mysql,Php,Mysql,我需要验证以下日期,我将其放入数据库中的日期时间表单。在它们之前,我检查名称是否为空并且有效,但与日期不起作用: function validation($data, $files) { $errors= array(); if (empty($data['name'])){ $errors['name'] = get_string('error:name', 'carhire'); } return $errors; //Here the

我需要
验证
以下
日期
,我将其放入
数据库
中的
日期时间表单
。在它们之前,我检查
名称是否为
并且有效,但与日期不起作用:

function validation($data, $files) {
    $errors= array();
    if (empty($data['name'])){
        $errors['name'] = get_string('error:name', 'carhire');
    }
    return $errors;
    //Here the dates won't work:
    if ($data['datefrom'] < $data['dateuntil']) {
        $errors['dateuntil'] = 'ERROR';
    }
    return $errors;
}
函数验证($data,$files){
$errors=array();
if(空($data['name'])){
$errors['name']=get_字符串('error:name','carhire');
}
返回$errors;
//这里的日期不起作用:
如果($data['datefrom']<$data['dateuntil'])){
$errors['dateuntil']='ERROR';
}
返回$errors;
}

我错过了什么?谢谢你的帮助

如果您像上面所示那样执行函数,它将不起作用,因为您要在“验证”日期之前结束它

删除第一个
返回$errors

function validation($data, $files) {
            $errors= array();
            if (empty($data['name'])){
                $errors['name'] = get_string('error:name', 'carhire');
            }
            return $errors; // <--- this will exit the function
            //Here the dates won't work:
            if ($data['datefrom'] < $data['dateuntil']) {
                $errors['dateuntil'] = 'ERROR';
            }
            return $errors;
}
函数验证($data,$files){
$errors=array();
if(空($data['name'])){
$errors['name']=get_字符串('error:name','carhire');
}

return$errors;//可能
if(strotime($data['datefrom'])
通常情况下,这种事情是通过两个日期选择器完成的,其中第二个日期选择器只显示比第一个日期选择器中拾取的日期晚的日期(反之亦然),因此这种验证应该是不必要的。我使用了两个日期选择器,但不可能显示比第一个日期选择器(在Moodle中)晚的日期.
strotime
不起作用。这两个日期在数据库中都设置为
datetime
。这完全取决于您希望如何读取日期。对您来说
02/03/04
是什么日期?2004年3月2日还是2004年2月3日?如果您将其作为
Y输入数据库,您可以确保
datetime
能够正确理解它YYY-MM-DD HH:MM:SS
。第一次返回是检查名称检查是否有效。我只是忘了在这里注释它。但是,它仍然不起作用,它不检查日期。在数据库中,它们的格式如下2016-01-18 08:55:00现在显示以下消息,即使日期是正确的“DateTime::\u construct():未能分析位置8(0)处的时间字符串(1453722000):意外字符“当传递给datetime类的变量不是有效的日期格式时,会出现此错误。其中一个日期是时间戳。错误中说明了时间戳:1453722000,因此需要转换其中一个。
function validation($data, $files) {
            $errors= array();
            if (empty($data['name'])){
                $errors['name'] = get_string('error:name', 'carhire');
            }
            //Here the dates won't work:
            $date_from = new DateTime($data['datefrom']); // example 2016-01-18 08:55:00
            $date_until = new DateTime($data['dateuntil']); // example 2016-01-19 08:55:00
            if ($date_from < $date_until) {
                $errors['dateuntil'] = 'ERROR';
            }
            return $errors;
}