我想得到两个日期之间的所有日期,
例如:输入两个日期,把这两个日期之间的所有日期取出来
如果是:2005-02-01至2005-02-05(同为一个月)
则为:2005-02-01,2005-02-02,2005-02-03,2005-02-04,2005-02-05
如果是:2005-01-29至2005-02-02(不同的月,有31号的月份)
则为:2005-01-29,2005-01-30,2005-01-31,2005-02-01,2005-02-02
PHP或JS写的简单一点的谢谢
例如:输入两个日期,把这两个日期之间的所有日期取出来
如果是:2005-02-01至2005-02-05(同为一个月)
则为:2005-02-01,2005-02-02,2005-02-03,2005-02-04,2005-02-05
如果是:2005-01-29至2005-02-02(不同的月,有31号的月份)
则为:2005-01-29,2005-01-30,2005-01-31,2005-02-01,2005-02-02
PHP或JS写的简单一点的谢谢
<?php
function prDates($start,$end){
$dt_start = strtotime($start);
$dt_end = strtotime($end);
while ($dt_start<=$dt_end){
echo date('Y-m-d',$dt_start)."\n";
$dt_start = strtotime('+1 day',$dt_start);
}
}
prDates('2005-02-01','2005-02-05');
echo "----------\n";
prDates('2005-01-29','2005-02-02');
?>
</pre>
$dt_start = strtotime($start);
$dt_end = strtotime($end);
do {
date('Y-m-d', $dt_start).PHP_EOL;
} while (($dt_start += 86400) <= $dt_end);
}改成这样效率高一倍
//将ISO Date 转成 Timestamp
$dt_start = strtotime($start);
$dt_end = strtotime($end);
do {
//将 Timestamp 转成 ISO Date 输出
echo date('Y-m-d', $dt_start).PHP_EOL;
} while (($dt_start += 86400) <= $dt_end); // 重复 Timestamp + 1 天(86400), 直至大于结束日期中止
}