Как проверить длительность даты между Start_date и End_date

#php

#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 дней уже используются». Если вы ввели длительность уже в базе данных, покажите ошибки проверки.

Комментарии:

1. попробуйте эту библиотеку разницы в углеродных датах . Это упростит работу с датами

Ответ №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. Пользователь должен ввести начальную и конечную дату, и я должен проверить несколько начальных и конечных дат из базы данных, которых нет между уже имеющимися в БД ..thankq..

Ответ №2:

Используйте встроенный php-класс DateTime с функцией diff

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