问题是获取Mysql中两个日期之间所有周的开始和结束日期

时间:2015-05-22 03:29:17

标签: php mysql date

我想在选择开始日期到结束日期之间显示所有周日期,所以我尝试按照代码

 <? 

 $signupweek='2015-05-21';
 /*start day*/
 for($i = 0; $i <7 ; $i++)
{
 $date = date('Y-m-d', strtotime("-".$i."days", strtotime($signupweek)));
 $dayName = date('D', strtotime($date));
 if($dayName == "Sun")
 {
   echo "start day is ". $date."<br>";
 }
}
?>

当我运行上面的代码时,它只给出了7天之前的日期开始日期,但我希望得到如下结果

sDate = '2013-02-25',
eDate = '2013-03-25';

输出

2013-02-25                
2013-03-04                 
2013-03-11                

任何想法我怎么能让它成为可能?你的建议很明显。

修改

根据 someOne 回答,我得到了我想要的结果但是现在我做了一些改变就好了,现在如果我输入 start_date = 2015-04-01和end_date = 2015 -05-01 所以我需要输出如下

2015-04-08
2015-04-15
2015-04-22
2015-04-29

我的输出列表中不需要 start_date = 2015-04-01 。这可能在以下功能中吗?

2 个答案:

答案 0 :(得分:1)

所以你想得到下周的日期:

<?php
function getWeeklyDates($from, $to) {
    $from = strtotime($from);
    $to = strtotime($to);

    $dates = array();
    $current = $from;
    while($current <= $to) {
        $dates[] = $current;
        $current = strtotime("+7 day", $current);
    }
    return $dates;
}

$dates = getWeeklyDates('2013-02-25', '2013-03-25');
foreach($dates as $date)
    echo date("Y-m-d", $date) ."<br />";
?>

答案 1 :(得分:1)

根据OP的编辑和请求,提供了以下新功能,使用户能够使用{{1}的可选参数指定是否在最终结果中包含起始日期或结束日期分别和$includeFrom

$includeTo