PHP生成与年份和月份显示的数字阵列
问题描述:
我有形式的两个日期:PHP生成与年份和月份显示的数字阵列
开始日期:2010-12-24
结束日期:2011-10-06(今天)
现在我需要生成该组由本月从上面开始日期和结束日期的数组:
$arr_month['oct_11'] = array(
'month' => 'October 2011'
);
.
.
.
$arr_month['feb_11'] = array(
'month' => 'Feb 2011'
);
$arr_month['jan_11'] = array(
'month' => 'January 2011'
);
$arr_month['dec_10'] = array(
'month' => 'December 2010'
);
正如你所看到的表应该有如果我使用这个数组来生成一个表,那么表中有11行。
答
$start_date = '2010-12-24';
$end_date = '2011-10-06';
function getMonthArray($start_date, $end_date){
$start_timestamp = strtotime(str_replace('-', '/', $start_date));
$end_timestamp = strtotime(str_replace('-', '/', $end_date));
$start_month_timestamp = strtotime(date('F Y', $start_timestamp));
$current_month_timestamp = strtotime(date('F Y', $end_timestamp));
$arr_month = array();
while($current_month_timestamp >= $start_month_timestamp) {
$arr_month[strtolower(date('M_y', $end_timestamp))] = date('F Y', $end_timestamp);
$end_timestamp = strtotime('-1 month', $end_timestamp);
$current_month_timestamp = strtotime(date('F Y', $end_timestamp));
}
return $arr_month;
}
$arr_month = getMonthArray($start_date, $end_date);
+0
你的家伙真棒!反应非常快!尊重 – Shiro
答
$start = "2010-12-24";
$end = "2011-10-06";
function enumerate($start,$end) {
$start = strtotime($start);
$end = strtotime($end . "+1 month");
$range = range($start,$end,60*60*24*31);
$formatted = array();
foreach($range as $date) {
$key = strtolower(str_replace(" ","_",date("M Y",$date)));
$formatted[$key] = array(
"month" => date('M Y',$date),
"amount" => "365"
);
}
return $formatted;
}
var_dump(enumerate($start,$end));
答
<?php
$start = strtotime(substr_replace('2010-12-24', '01', -2));
$end = strtotime('2011-10-06');
$time = $start;
$arr_month = array();
while ($time <= $end) {
$arr_month[strtolower(date('M_y', $time))]['month'] = date('F Y', $time);
$time += date('t', $time) * 24 * 60 * 60;
}
var_dump($arr_month);
这是不是真的清楚自己想要做什么。你能详细解释一下吗? – ronakg
我想用数组生成一个表格。用户只能输入from和end date。我希望它按月分组。 – Shiro