Я работаю над сайтом на основе событий. Пользователь может создать несколько событий в течение года, и вот как работает форма.
У нас есть одно поле выбора со следующими параметрами:
И еще одно поле выбора с названиями дней недели.
Например, он может выбрать повторение своего события каждый «второй» «понедельник» каждого месяца в течение одного года (или более).
Теперь я ищу способ получить дату каждого второго понедельника (согласно примеру выше) с помощью PHP.
У меня есть этот код, который позволяет мне получить то, что я хочу … Но не уверен насчет отличного способа использовать его в цикле.
echo date("j, d-M-Y", strtotime("second monday 2017-11"));
Должен ли я просто зациклить и изменить год & строка месяца?
Спасибо!
К счастью, эта проблема уже решена. Анонсы Стандарт имеет компонент Правила повторения для обработки повторяющихся событий. Есть спецификация RFC, и есть официальная реализация PHP также. В качестве альтернативы, проверьте tplaner / Когда библиотека на GitHub.
Других решений пока нет …