如何使用"每月第一个星期四"获得DatePeriod?

acm*_*cme 4 php datetime dateinterval

我有两个DateTime对象:

$start = new DateTime('first thursday of June 2012');
$end   = new DateTime('2012-12-31');
Run Code Online (Sandbox Code Playgroud)

我需要一个DatePeriod包含这两个日期之间的所有月份的所有第一个星期四.使用时

$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $end);
Run Code Online (Sandbox Code Playgroud)

这仅仅增加1个月而不尊重"第一个星期四"的条件.

这样的事情也行不通:

$interval = DateInterval::createFromDateString('1 month first thursday');
$period = new DatePeriod($start, $interval, $end);
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能做到这一点?

acm*_*cme 5

在过去的两个小时里我一直在努力 - 只要我在这里发布,我就得到了解决方案.我只需要将DateInterval字符串更改为"下个月的第一个星期四".

$start = new DateTime('first thursday of June 2012');
$end   = new DateTime('2012-12-31');

$interval = DateInterval::createFromDateString('first thursday of next month');
$period = new DatePeriod($start, $interval, $end);
Run Code Online (Sandbox Code Playgroud)

作品!DateTime岩石;-)

  • 大声笑......我正准备发布那个......你怎么知道我在想什么 (2认同)