PHP + MySQL + повторение событий календаря - PullRequest
0 голосов
/ 03 февраля 2011

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 03 февраля 2011

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

...