Php 如何验证开始日期和结束日期之间的日期持续时间

Php 如何验证开始日期和结束日期之间的日期持续时间,php,Php,我想验证不重复的持续时间。例如,当用户插入起始日期2017年1月22日至2017年2月2日时,我想显示“9天已在使用”。如果您输入的持续时间已存在于数据库中,请显示验证错误。尝试此 In the database table Cinema_id | Start_date | End_date 1 | 20/12/2016 | 30/12/2016 1 | 01/01/2017 | 31/01/2017

我想验证不重复的持续时间。例如,当用户插入起始日期2017年1月22日至2017年2月2日时,我想显示“9天已在使用”。如果您输入的持续时间已存在于数据库中,请显示验证错误。

尝试此

 In the database table 



 Cinema_id   |    Start_date | End_date        
    1        | 20/12/2016    | 30/12/2016 
    1        | 01/01/2017    | 31/01/2017

使用内置php类DateTime和diff函数

    $sd='20/12/2016';
    $ed='30/12/2016'; 
    $datetime1 = new DateTime(date('Y-m-d',strtotime($sd)));
    $datetime2 = new DateTime(date('Y-m-d',strtotime($ed)));
    $interval = $datetime1->diff($datetime2);
    echo $interval->format('%R%a days');
还有另外一种方法

$date1 = new DateTime(date('Y-m-d',strtotime('01/01/2017')));
$date2 = new DateTime(date('Y-m-d',strtotime('31/01/2017')));
$interval = $date1->diff($date2);
$difftime = $interval->format('%R%a days');

用户必须输入开始日期和结束日期,我必须检查数据库中的多个开始日期和结束日期,这些日期不在数据库中..谢谢..尝试此库。这将使事情变得容易
$sdate = strtotime('2017-01-01');
$edate = strtotime('2017-01-31');

$days = ceil(abs($edate - $sdate) / 86400);