Все комбинации дат между фиксированным периодом (PHP / Циклы)

#php #loops #date

#php #циклы #Дата

Вопрос:

Это звучит как глупый вопрос, но я изо всех сил пытаюсь придумать, как лучше всего его решить.

У меня есть 2 даты, скажем, с 15-03-2012 по 19-03-2012. Мне нужно извлечь все комбинации, работающие со всех 4 дней вместе, до 4 отдельных дней, вывести следующим образом (изменение форматирования для простоты):

 15, 16, 17, 18
15,16, 17
16, 17, 18
15, 16
16, 17
17, 18
15
16
17
18
  

Я ищу лучший метод циклирования, диапазон дат будет отличаться по длине, формат не имеет значения, но это должны быть даты php, из которых я буду извлекать точный требуемый формат. Я буду использовать каждый набор дат для выполнения кода на каждой итерации, поэтому должны быть даты / циклы.

Ответ №1:

Создайте два объекта Date с имеющимися у вас значениями, напишите цикл while, который выполняется до тех пор, пока начальная переменная (ваша начальная дата) не станет равной конечной переменной (вашей конечной дате), и все должно быть готово.

Ответ №2:

Общая идея:

 $day = 24 * 60 * 60;

for($startDate = $dateA; $startDate <= $dateB; $startDate  = day)
{
  for($endDate = $startDate; $endDate <= $dateB; $endDate  = day)
  {
    for($dateIndex = startDate; $dateIndex <= $endDate; $dateIndex  = day)
    {
      $output = getDate($dateIndex); 
      echo($output['month'] . $output['day'] . ',');
    }
    echo '</br>';
  }
}