我只想制作一个月份日期的数组。所以日期最多从1到31开始。
显而易见的是,我知道这是一种手动方式:
$date_array = array( '1', '2', '3', '4', '5', '6', '7', ..., '31' );
但我正在寻找一种自动化方式,就像一个简单的for loop
,让我成为我想要的自动生成日期:
for($Idx=1;$Idx<32;$Idx++) {
var_dump($Idx);
}
只需将它们放在一个数组中即可。
$my_date_array = makeArray( $Idx );
makeArray() - 哈!:)
可能的吗
答案 0 :(得分:6)
使用此:
function makeArray ($calendar, $month, $year) {
return range (1, cal_days_in_month ($calendar, $month, $year));
}
实施例
$aMyArray = makeArray (CAL_GREGORIAN, 8, 2003);
参考
array range ( mixed $start , mixed $end [, number $step = 1 ] )
int cal_days_in_month ( int $calendar , int $month , int $year )
答案 1 :(得分:1)
$date = time(); // A Unix timestamp, so for example 'strtotime("2013-01-01")'.
$array_of_days_in_month = range(1, date("t", $date));
date("t")
将返回给定月份的天数。
答案 2 :(得分:0)
使用range():
$data = range(1,31);
答案 3 :(得分:0)
function makeArray() {
$months = array(31,28,31,30,31,30,31,31,30,31,30,31);
$array = array();
foreach($months as $month) {
$array = array_merge($array, range(1, $month));
}
return $array;
}
此功能考虑到每个月的天数不同。请留意闰年!
如果你今年需要这个,请使用它。它照顾你的闰年!
function makeArray() {
$array = array();
for($month = 0; $month < 12; $month++) {
$array = array_merge($array, range(1, date("t", mktime(0, 0, 0, $month, 1)));
}
return $array;
}