Убрать день из интервала

182
19 декабря 2016, 19:32

Интервал взят из текстового бокса в определенном формате. Беру начало и конец интервала.

Как убрать один день из средины этого интервала?

К примеру, интервал: 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/>";
Answer 1

Предположим, что $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'.

READ ALSO
Правильное наследование классов в php

Правильное наследование классов в php

Есть к примеру 3 класса

183
Валидация поля, которое не передается из представления

Валидация поля, которое не передается из представления

У меня есть, к примеру, таблица Сообщений, в которой я записываю пользователя, который оставил сообщение

169
PHP pthreads крашится

PHP pthreads крашится

Вот мой код по парсингу ссылокНо он почему-то крашит php:

169