日期验证比较php中的两个日期

时间:2015-03-09 15:57:56

标签: php mysql

我需要使用数据库日期验证输入日期。请帮助..

Issue_date = 09-03-2015

return_date = 06-03-2015

我需要我的代码从数据库中选择Issue_date并与return_date匹配...如果return_date< Issue_date然后显示错误..

这只接受如果Issue_date和return_date相同或者return_date大于Issue_date

public function date_validation($book,$return_date)
        {
            $errors=array();                    
            $exists = $this->datab->prepare("SELECT issue_date FROM book_issue WHERE book_no = :book_no");
            $exists->execute(array(':book_no' => $book));
            $num_rows = $exists->fetch();   
            if($return_date < $num_rows['issue_date'])  
            { 
                $errors['Message'] = "Plz Select Return Date Greater Than Book Issue Date."; 
            }   

             return $errors;        
        } 

1 个答案:

答案 0 :(得分:1)

使用the DateTime class,您可以使用比较运算符:

$return_date = new DateTime($return_date);
$issueDate = new DateTime($num_rows['issue_date']));
if ($return_date < $issueDate) {
}

完成工作。作为额外的好处,您可以强制函数的调用者使用类型提示将有效日期传递给您的函数:

function dateValidation($book, DateTime $returnDate)
{
    //this function can only be called if $returnDate was an instance of DateTime
}

要显示实际日期,只需使用DateTime::format,然后使用您想要的格式:

echo $date->format('Y-m-d H:i:s');//yyyy-mm-dd hh:mm:ss
echo $date->format('d/m/y');//dd/mm/yy