我有一个表单,用户可以在其中选择日期范围。例如,日期范围可以是:
$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"
}
}
我怎么能做到这一点?
答案 0 :(得分:0)
使用$ dateX-> getTimestamp(),而不是在这两个时间戳之间以60 * 60 * 24 * 30(一个月)的间隔进行迭代并使用日期(" d / m / Y" ,$ time)获取格式化日期。
答案 1 :(得分:0)
使用+1 month
函数中的date
字符串,每个月循环播放,直到达到结束日期为止。您可以使用cal_days_in_month
或t
date
字符串来获取每月的天数。