我有:
$start_date = '2012-09-03';
$number_days = 5;
我想收到这个日期的数组:
$dates = array(
'2012-09-03',
'2012-09-04',
'2012-09-05',
'2012-09-06',
'2012-09-07'
);
最好的方法是什么?
答案 0 :(得分:0)
http://php.net/manual/en/function.date-add.php 循环并添加您需要的日期。
答案 1 :(得分:0)
你有没有试过这样的东西
function get_days($start_date, $max){
$ts=strtotime($start_date);
$next_day_interval=24*60*60;
$arr=array();
$arr[]=$start_date;
for($i=1;$i<=$max;$i++){
$ts += $next_day_interval;
$arr[]=date('Y-m-d', $ts);
}
return $arr;
}
只是在这里写了所以可能有一些编译时错误,但我希望你能得到这个想法。
答案 2 :(得分:0)
试试这个。
$start_date = '2012-09-03';
$number_days = 5;
$dates = array();
$TS = strtotime($start_date);
$dates[0] = $start_date;
for($i=1;$i<5;$i++)
{
$dates[$i] = date('Y-m-d', strtotime('+1 day', $TS));
$TS = strtotime($dates[$i]);
}
答案 3 :(得分:0)
以下是您要搜索的内容(也适用于PHP&lt; 5.3)
<?php
$start_date = '2012-09-03';
$number_days = 5;
$stdate = date(strtotime($start_date));
$dates = array();
for($i = 0 ; $i < $number_days ; $i++) {
$dates[$i] = date('Y-m-d', $stdate) ;
$stdate += 24*60*60;
}
var_dump($dates);
?>
答案 4 :(得分:0)
$start_date = '2012-09-03';
$dates[] = $start_date;
$number_days = 5;
for ($i=1; $i < $number_days; $i++) {
$dates[] = date('Y-m-d', strtotime("$start_date +$i days"));
}
答案 5 :(得分:0)
从@vinay修改代码以打印实际输出
<?php
$start_date = '2012-09-03';
$number_days = 5;
$dates = array();
$TS = strtotime($start_date);
for($i=0;$i<5;$i++)
{
$dates[$i] = date('Y-m-d', strtotime('+1 day', $TS));
$TS = strtotime($dates[$i]);
echo date('y-m-d',$TS).'<br>';
}
?>
答案 6 :(得分:0)
这是PHP 5.3 DateTime和DateInterval的简单示例。这是明确的解决方案。 注意:PHP 5.2支持DateTime,但不支持DateInterval。您可以在PHP 5.2中的自定义类中声明它,请参见此处:DateInterval Definition。
<?php
$start_date = '2012-09-03';
$number_days = 5;
$dt = new DateTime($start_date);
$dates = array();
for($i = 0; $i < $number_days; $i++) {
$dates[] = $dt->format("Y-m-d");
$dt->add(new DateInterval("P1D"));
}
print_r($dates);
?>