【发布时间】:2015-07-25 11:08:00
【问题描述】:
我被困在一个 PHP 函数中:给定一个开始日期(即 2011-11-25)和一个结束日期(即 2011-03-18),我想得到一个包含年份的数组 >月 > 像这样的日期:
Array
(
[2010] => Array
(
[11] => Array
(
[0] => 25
[1] => 26
[2] => 27
[3] => 28
[4] => 29
[5] => 30
)
[12] => Array
(
[0] => 01
[1] => 02
[2] => 03
[3] => 04
[4] => 05
[5] => 06
[6] => 07
[7] => 08
[8] => 09
[9] => 10
[10] => 11
[11] => 12
[12] => 13
[13] => 14
[14] => 15
[15] => 16
[16] => 17
[17] => 18
[18] => 19
[19] => 20
[20] => 21
[21] => 22
[22] => 23
[23] => 24
[24] => 25
[25] => 26
[26] => 27
[27] => 28
[28] => 29
[29] => 30
[30] => 31
)
)
[2011] => Array
(
[01] => Array
(
[0] => 01
[1] => 02
[2] => 03
[3] => 04
[4] => 05
[5] => 06
[6] => 07
[7] => 08
[8] => 09
[9] => 10
[10] => 11
[11] => 12
[12] => 13
[13] => 14
[14] => 15
[15] => 16
[16] => 17
[17] => 18
[18] => 19
[19] => 20
[20] => 21
[21] => 22
[22] => 23
[23] => 24
[24] => 25
[25] => 26
[26] => 27
[27] => 28
[28] => 29
[29] => 30
[30] => 31
)
[02] => Array
(
[0] => 01
[1] => 02
[2] => 03
[3] => 04
[4] => 05
[5] => 06
[6] => 07
[7] => 08
[8] => 09
[9] => 10
[10] => 11
[11] => 12
[12] => 13
[13] => 14
[14] => 15
[15] => 16
[16] => 17
[17] => 18
[18] => 19
[19] => 20
[20] => 21
[21] => 22
[22] => 23
[23] => 24
[24] => 25
[25] => 26
[26] => 27
[27] => 28
)
[03] => Array
(
[0] => 01
[1] => 02
[2] => 03
[3] => 04
[4] => 05
[5] => 06
[6] => 07
[7] => 08
[8] => 09
[9] => 10
[10] => 11
[11] => 12
[12] => 13
[13] => 14
[14] => 15
[15] => 16
[16] => 17
[17] => 18
)
)
)
谷歌搜索我发现了一个函数来获取包含年 > 月的数组:
function get_months($startstring, $endstring) {
$time1 = strtotime($startstring);
$time2 = strtotime($endstring);
$year1 = date('Y', $time1);
$year2 = date('Y', $time2);
$years = range($year1, $year2);
foreach ($years as $year) {
$months[$year] = array();
while ($time1 < $time2) {
if (date('Y', $time1) == $year){
$month = date('m', $time1);
$months[$year][$month] = array();
$time1 = strtotime(date('Y-m', $time1).' +1 month');
} else {
break;
}
}
}
return $months;
}
// ----------------------------------------------------------------
foreach(array_keys($montharr) as $year){
foreach($montharr[$year] as $month){
print "{$year}-{$month}<br>";
}
}
但我也不知道如何实施天数
请帮忙?
【问题讨论】:
-
看看 Carbon Package github.com/briannesbitt/Carbon 它有很多帮助进行日期比较,我用它来做类似的事情。