Php 是否只知道开始日期和间隔(不包括特定日期)就获取日期范围?

Php 是否只知道开始日期和间隔(不包括特定日期)就获取日期范围?,php,datetime,intervals,Php,Datetime,Intervals,我需要得到一个日期列表,从当前日期到下一周的指定日期(本例中为星期六) 例如: 今天是2014年8月1日星期五,所以它应该得到从今天开始到2014年8月9日星期六的日期: fri,2014-08-01 星期六,2014-08-02 (太阳除外) 2014年8月4日星期一 2014年8月5日星期二 2014年8月6日星期三 周四,2014-08-07 2014年8月8日星期五 星期六,2014-08-09 (太阳除外) 我该怎么办 我在考虑使用DateInterval类,到目前为止,我得到的是:

我需要得到一个日期列表,从当前日期到下一周的指定日期(本例中为星期六)

例如:

今天是2014年8月1日星期五,所以它应该得到从今天开始到2014年8月9日星期六的日期:

fri,2014-08-01
星期六,2014-08-02
(太阳除外)
2014年8月4日星期一
2014年8月5日星期二
2014年8月6日星期三
周四,2014-08-07
2014年8月8日星期五
星期六,2014-08-09
(太阳除外)
我该怎么办

我在考虑使用
DateInterval
类,到目前为止,我得到的是:

$now=date('Y-m-d');
$start=新日期时间($now);
$end=新日期时间($now);
$oneweek=新日期间隔('P1W');
$oneday=新日期间隔('P1D');
$days=array();
foreach(新日期周期($start、$oneday、$end->添加($oneweek))为$day){
$day_num=$day->format('N');
如果($day_num<7){
$days[$day->format('Y-m-d')]='有效日期';
}
}

它可以排除星期日,但仅在当前日期后1周内有效,即7天。因此,我想知道是否有一种方法可以使“
$end
类似于“下一周的星期六”。

实际上有一种方法可以做到这一点,如果你看看的注释部分,你会发现一个由jkaatz在gmx dot de(2009-07-10 01:55)编写的类“静态方法”的用法示例:

$interval=DateInterval::createFromDateString(“下个月的最后一个星期四”);
使用相同的方法,可以使用以下字符串构造日期间隔:

下周的星期日

它可以让您获得从当前日期(包括当前星期六)到下一周星期六之间的所有日期(因为
DatePeriod
计算到但不包括结束日期)


您可以在其手册页面上找到有关
createFromDateString
方法的更多信息,还可以找到有关在上构造间隔字符串的语法、关键字和符号的更多信息,这些也是函数和类所使用的。

我发现这个静态函数非常需要内存,所以要小心。