Расчет даты окончания - PullRequest
       5

Расчет даты окончания

0 голосов
/ 02 августа 2010

Мне нужно немного помочь с использованием Symfony для расчета даты окончания.Пользователь выбирает дату начала, частоту (например, каждые 7 дней, каждые 14 дней, каждый месяц, каждые полгода - каждые 6 месяцев и т. Д.) И количество случаев.

Примеры:

Start date: 08/01/2010
Frequency: Every 7 days
Occurrences: 4
End Date = 08/29/2010

Start date: 08/01/2010
Frequency: Every Month
Occurrences: 3
End Date = 11/01/2010

Некоторые примечания - наш сервер работает под управлением PHP 5.2.13 и Symfony 1.1.Я не обязываю использовать symfony для корректировки даты, если я могу вернуть ее в формат, который Symfony может проверить.

Заранее спасибо.

1 Ответ

4 голосов
/ 02 августа 2010

Вы можете использовать strtotime для этого, например,

echo date("Y-m-d", strtotime("+1 month", strtotime("2010-08-06")));

дает 2010-09-06.

Конечно, вам придется умножить «+1 месяц» на числослучаев, так что он становится, например, "+7 месяцев" для 7 случаев.

В качестве альтернативы (более простой, но менее эффективный), вы можете использовать фиксированный интервал (например, "+1 месяц") и использовать for петля:

$end = $start = strtotime("2010-08-06");
for ($i = 1; $i <= $occurrences; $i++) {
    $end = strtotime("+1 month", $end);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...