Дата в php

Рейтинг: 1Ответов: 1Опубликовано: 18.11.2014

Здравствуйте.

Есть конструкция, которая выводит даты от одного числа (за 10 дней до сегодня) и на месяц:

$date_from=date("Y-m-d",strtotime(date("Y-m-d"))-86400*9);
$date_next=$date_from;
do {

      ?>

        <tr>
            <th><?=$date_next?></th>
        </tr>

        <?php

        $date_next=date("Y-m-d",strtotime($date_next)+86400);

    } while ($date_next<date("Y-m-d",strtotime($date_from)+86400*31));

Все работает хорошо, но когда вместо 31 дня пытаюсь вывести 2 года, начинается бесконечный цикл на дате 2014-10-25.
С чем может быть связано, может, знаете? Спасибо.

Ответы

▲ 1

Переход на зимнее время: +86400 даёт всё ещё ту же дату. 26-го октября в 2 часа стрелки часов переводятся на час назад. Т.о. прибавление 86400 секунд даёт всё ещё ту же дату.

Стоит отказаться от порочной практики прибавления секунд, а использовать DateTime::add() и добавлять именно 1 день.