如何验证Start_date和End_date之间的日期持续时间

时间:2016-10-24 06:10:02

标签: php

 In the database table 



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

我想验证不重复的持续时间。例如,当用户插入start_date 22/01/2017至02/02/2017时,我想显示“9天已经在使用中”。如果您输入的持续时间已经在数据库中,则显示验证错误。

2 个答案:

答案 0 :(得分:1)

试试这个......

    $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');

答案 1 :(得分:0)

使用带有diff函数的内置php类DateTime

$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);