2010-09-21 20 views
0

我想找到正確的字符串來修改DateTime對象。我有一個反覆出現的日曆對象:使用PHP日期/時間類我試圖得到某些特定的日子

目前發現「這個下個月的日期」很簡單:$ start_date-> modify('+ 1 month');

但是,我也在尋找'下個月的這一天'和'明年的這一天'。

找不到相關的字符串。 乾杯

編輯:

因此,例如,如果我們把2010-09-21作爲開始日期:

$start_date = new DateTime(20100921); 

查找下個月的當前日期(數值表示)會:

$start_date->modify('+1 month'); 

但是,找到下個月的當前日期(文本表示)正在給我帶來更多麻煩。

This date is the third tuesday of this month - next month the third tuesday is the 19th 
+1

請澄清(可能是用小例子)你正在努力達到什麼目的。 – bouke 2010-09-21 09:31:50

+0

「這個下個月的日期」和「下個月的這一天」之間有什麼區別? – 2010-09-21 09:32:31

+0

請使用一些示例輸入和期望的輸出來製作一個僞代碼示例(就像您將調用該函數一樣)。 – 2010-09-21 09:36:55

回答

1

你可以爲「下個月同一天」做這樣的事情:

<?php 

switch(floor(date("d")/7)) { 
    case 0: 
    $which = "first"; 
    break; 
    case 1: 
    $which = "second"; 
    break; 
    case 2: 
    $which = "third"; 
    break; 
    case 3: 
    $which = "fourth"; 
    break; 
    case 4: 
    $which = "fifth"; 
    break; 
} 

echo date("c", strtotime(sprintf("%s %s of +1 month", $which, date("l")))); 

我不知道如果'明年的同一天(fiftysecond thuesday of +1 year)相同的工作,但你也可以如果你知道一年中的哪一天開始計算它,然後使用mktime()

+0

謝謝,這似乎是一個很好的計劃 – kalpaitch 2010-09-21 10:59:05

相關問題