在php中获取开始日期和结束日期之间的所有日期


get all the dates between start date and end date in php

我想获取开始日期和结束日期之间的所有日期。我需要显示一个每周的数据,数据分为几天。

我的开始日期是2015-11-02,结束日期是2015-11-18。然后我需要在foreach循环中打印介于两者之间的所有日期。

我该怎么做?

可以使用字符串操作和基本数学,但不同天数和闰年的月份等使这种方法无效。

最好使用PHP DateTime的实例并循环使用,这是一个已经在这里回答的问题:

$begin = new DateTime( '2010-05-01' );
$end = new DateTime( '2010-05-10' );
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ( $period as $dt )
  echo $dt->format( "l Y-m-d H:i:s'n" );

DateTime对象具有输出各种格式的额外优势,在生成链接名称、URI、SQL查询等时非常有用。