2012-04-05 129 views
4

我有两个DateTime -objects:如何获得“每个月的第一个星期四”的DatePeriod?

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

我需要一个DatePeriod包含此两个日期之间的月份所有的第一星期四。当使用

$interval = new DateInterval('P1M'); 
$period = new DatePeriod($start, $interval, $end); 

这只增加1个月,不尊重条件“第一个星期四”。

而且这样的事情不工作:

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

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

回答

4

我挣扎与此持续两个小时 - 只要我张贴在这里我得到了解决。 我只需要将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); 

工程! DateTime的岩石;-)

+2

笑......我正要张贴......你怎么知道我在想 – Baba 2012-04-05 08:34:40

+0

+1,很好的解决方案 – safarov 2012-04-05 08:38:18

相关问题