PHP + MySQL + повторяющиеся события календаря

Я знаю, что этот вопрос задавали много раз, и я бы хотел, чтобы там были какие-то четкие ответы, поэтому я попытаюсь задать его и посмотреть, сможем ли мы получить другой ответ.

Я понимаю, что есть много сложностей в работе с повторяющимися событиями. Но правильно ли я понимаю, если бы я сделал что-то вроде этого:

Столбец MySQL (RRULE) Когда пользователь входит в событие, муравей говорит: «Это повторяется», теперь введите в эту информацию RRULE, такую ​​​​как (например: FREQ = YEARLY; ​​BYMONTH = 3; BYDAY = 2SU )

Так что используйте этот метод вместо ВСТАВКИ сотен событий одного и того же, просто создайте 1 таблицу для хранения моих повторяющихся событий, а затем добавьте этот столбец RRULE для события, верно?

Вопрос 2. Как определить максимальную продолжительность события, если сказано: «Повторять это вечно» (т. е. день рождения).

Вопрос 3. Есть ли лучший способ сделать это, чем я думаю?

Если бы вы могли пролить свет на то, что я спрашиваю, это было бы очень признательно. Я хотел бы написать класс, который обрабатывает всю информацию на основе этой настройки, но хотел бы знать, на правильном ли я пути или нет.

Пожалуйста и спасибо!


person Justin    schedule 02.02.2011    source источник


Ответы (1)


Да, просто введите его один раз. Рассчитайте первый день его запуска на основе ввода пользователя (что они выбрали? ежегодно, ежемесячно и т. д.), когда вы вставите его, и укажите его в качестве даты следующего запуска. Также сохраните их выбор типа. Затем, когда вы запускаете задачу в указанное время, вы обновляете дату/время следующего запуска на основе сохраненного выбора типа. Кроме того, вам может понадобиться еще одно поле, указывающее, сколько раз повторять; навсегда, 4 раза и т. д. Уменьшите это значение соответственно при выполнении задачи.

person profitphp    schedule 02.02.2011