2010-08-01 92 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