如何获得每月的第一,第二,第三和第四个星期一?

时间:2017-11-30 13:08:53

标签: php date datetime recurrence

我正在开发一个基于事件的网站。用户可以在一年中创建多个事件,这是表单的工作方式。

我们有一个选择框,其中包含以下选项:

  • 第一个
  • 第二个
  • 第三个
  • 第四个

另一个选择框,其中包含工作日的名称。

例如,他可以选择在一年(或更长)的每个月的“第二个”“星期一”重复他的活动。

现在,我正在寻找一种方法来获取每周一的星期一(根据上面的例子)用PHP。

我有这个代码可以让我得到我想要的东西......但不确定在循环中使用它的好方法。

echo date("j, d-M-Y", strtotime("second monday 2017-11"));

我应该循环并改变年份和年份。月份字符串?

谢谢!

1 个答案:

答案 0 :(得分:0)

幸运的是,这个问题已经解决了。 iCalendar标准具有递归规则组件来处理重复事件。有一个RFC规范,也有一个official PHP implementation。或者,查看GitHub上的tplaner/When库。