0

我有一个表单,用户可以在其中选择日期范围。例如,日期范围可以是:

$start = "5/1/2013";
$end = "6/5/2013";

我可以通过执行以下操作轻松抓住两者之间的天差:

$date1 = new DateTime($start);
$date2 = new DateTime($end);

$interval = $date1->diff($date2)

但是,如果我想构建一个包含每月分组的数组,其中每个数组将具有每个组的最小和最大日期。例如:

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(8) "5/1/2013"
    [1]=>
    string(9) "5/30/2013"
  }
  [1]=>
  array(2) {
    [0]=>
    string(8) "6/1/2013"
    [1]=>
    string(8) "6/5/2013"
  }
}

我怎么能做到这一点?

4

2 回答 2

0

+1 month只需使用函数中的字符串循环每个月date,然后继续直到到达结束日期。您可以使用cal_days_in_montht字符串date来获取每个月的天数。

于 2013-05-20T18:05:17.177 回答
0

使用 $dateX->getTimestamp(),而不是在这两个时间戳之间以 60*60*24*30(一个月)的间隔进行迭代,并使用 date("d/m/Y", $time) 获取格式化的日期.

于 2013-05-20T17:58:51.850 回答