如何实现这个功能?
所以它会输出一个包含2009-12-25的数组2009-12-25 2009-12-27 2009-12-28 2009-12-29 2009-12-30?
答案 0 :(得分:5)
$startdate = strtotime("2009-12-25");
$enddate = strtotime("2009-12-30");
$steps = "1 day";
# Start
$date = $startdate;
while ($date <= $enddate)
{ echo date("Y-m-d", $date)."<br>";
$date = strtotime ("+".$steps, $date); // can be slow with large arrays,
// you can also just add 60*60*24 seconds
// to $date
}
答案 1 :(得分:3)
此外,您可以使用类似于第一个答案的方法。
$startDate = mktime(0, 0, 0, 12, 25, 2009);
$endDate = mktime(0, 0, 0, 12, 30, 2009);
for ($i=$startDate; $i<=$endDate; $i=$i+86400) {
$timeArray[]=date("Y-m-d", $i);
}
结果:
array (
0 => '2009-12-25',
1 => '2009-12-26',
2 => '2009-12-27',
3 => '2009-12-28',
4 => '2009-12-29',
5 => '2009-12-30',
)
答案 2 :(得分:2)
从php 5.3开始,你也可以使用DatePeriod类。
答案 3 :(得分:-2)
将mktime
与当天的递增变量一起使用:
$array = array();
for ($x = 25; $x <= 30; $x++) {
$array[] = date('Y-m-d', mktime(0, 0, 0, 12, $x, 2009));
}