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