0

我试图弄清楚如何根据现有日期以特定时间间隔在特定日期重复某些任务。

例如,我有这个:

Date                              Task 
2011-01-12                   MJK-0083

我想要:

  1. 根据提供的日期(在本例中为星期三)确定星期几
  2. 确定是每月的哪个星期三(在本例中为第二个星期三)
  3. 计算 6 月的第 2 个星期三的日期作为该任务发生的下一个日期

我一直在看一些例子,虽然我可以做一些事情,但我似乎无法弄清楚如何做所有事情。例如,我将其用于第 1 步:

date('l', strtotime('2011-01-12'))

但是当涉及到第 2 步和第 3 步时,我迷路了……有人可以帮我吗?

4

1 回答 1

2

要找出该月的哪个星期三,您可以使用该月中的某天来执行此操作

(int)(day_of_month / 7) + (day_of_month % 7 == 0 ? 0 : 1)

因此,对于 2012-01-12,您将获得:

(int)(12 / 7) + (12 % 7 == 0 ? 0 : 1) = 1 + 1 = 2 -> second Wednesday
于 2012-04-24T15:59:12.530 回答