2012-04-05 180 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

相關問題