获取按月分组的日期范围

时间:2013-05-20 17:54:13

标签: php arrays date dynamic-arrays date-range

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

$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"
  }
}

我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用+1 month函数中的date字符串,每个月循环播放,直到达到结束日期为止。您可以使用cal_days_in_montht date字符串来获取每月的天数。