2010-08-01 96 views
0

我需要一些幫助,使用symfony來計算結束日期。用戶將選擇開始日期,頻率(例如每7天,每14天,每月,每半年 - 每6個月等)以及發生次數。計算結束日期

例子:

Start date: 08/01/2010 
Frequency: Every 7 days 
Occurrences: 4 
End Date = 08/29/2010 

Start date: 08/01/2010 
Frequency: Every Month 
Occurrences: 3 
End Date = 11/01/2010 

一些筆記 - 我們的服務器正在運行PHP 5.2.13和Symfony的1.1。這並不是要求我使用symfony來調整日期,只要我可以將它恢復爲symfony可以驗證的格式即可。

在此先感謝。

回答

4

您可以使用strtotime來實現此目的。

echo date("Y-m-d", strtotime("+1 month", strtotime("2010-08-06"))); 

給出2010-09-06

當然,你必須乘以「+1個月」的出現次數,以便它變成「7個月」發生7次。

或者(更簡單,但效率不高),你可以使用一個固定的間隔(例如「+1月」),並使用for循環:

$end = $start = strtotime("2010-08-06"); 
for ($i = 1; $i <= $occurrences; $i++) { 
    $end = strtotime("+1 month", $end); 
} 
+0

,我將如何得到的結果返回給格式$ end ['year'],$ end ['month'],$ end ['day']? – clang1234 2010-08-02 00:02:16

+0

@clang'$ end = array('day'=> date(「d」,$ end),'month'=> ...)' – Artefacto 2010-08-02 00:08:06

+0

很好。感謝您的快速幫助。 – clang1234 2010-08-02 00:11:31