Интервал взят из текстового бокса в определенном формате. Беру начало и конец интервала.
Как убрать один день из средины этого интервала?
К примеру, интервал: 01-02-2016 - 01-03-2016
, и нужно убрать 26-02-2016
.
Данный код считает дни. Если будний день является выходным, он не должен браться в расчёт. В этом загвоздка.
Я так понимаю, нужно каким-то образом удалять конкретные даты?
/* Расчет количества дней */
$dateStart = new DateTime( $rangePickerStart ); // Дата начала расчета
$dateEnd = new DateTime( $rangePickerEnd ); // Дата окончания расчета
$daysStudy = $_POST['input']; // Массив, в который заносятся выбранные
//дни недели из формы. 0 это воскресенье
$allDaysStudy = 0;
while ( $dateStart <= $dateEnd )
{
if ( in_array( $dateStart->format( 'w' ), $daysStudy ) )
$allDaysStudy++;
$dateStart-> modify( '+1 day' );
}
echo "Количество всех выбраных дней недели в заданном диапазоне дат: <b>",
$allDaysStudy, "</b>\n";
echo "<br/>";
Предположим, что $datesToExclude
содержит даты, которые надо исключить.
Тогда:
/* Расчет количества дней */
$dateStart = new DateTime( $rangePickerStart ); // Дата начала расчета
$dateEnd = new DateTime( $rangePickerEnd ); // Дата окончания расчета
$daysStudy = $_POST['input']; // Массив, в который заносятся выбранные
//дни недели из формы. 0 это воскресенье
$allDaysStudy = 0;
$datesInRange = Array(); // здесь будем хранить полный набор дат
while ( $dateStart <= $dateEnd )
{
if ( in_array( $dateStart->format( 'w' ), $daysStudy ) ) {
$allDaysStudy++;
}
// если текущей даты нет в архиве на исключение - добавляем в список дат
if (!in_array($dateStart->format('d-m-Y'), $datesToExclude)) {
$datesInRange[] = $dateStart->format('d-m-Y');
}
$dateStart-> modify( '+1 day' );
}
Замечание: здесь важен формат дат. Т.е., чтобы код правильно работал, даты в массиве $datesToExclude
должны быть в формате 'd-m-Y'.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
У меня есть, к примеру, таблица Сообщений, в которой я записываю пользователя, который оставил сообщение