如何计算两天之间的星期开始日?

时间:2011-03-31 09:50:13

标签: php symfony1

对于ex-

        Day1    2011-03-28
        Day2    2011-04-25

周开始日

                 2011-03-28
                 2011-4-4
                 2011-4-11
                 2011-4-18
                 2011-04-25

3 个答案:

答案 0 :(得分:1)

function print_monday_dates($startdate, $enddate)
{
  if (date('N', $startdate) != 1)
    $startdate = strtotime("next monday", $startdate);

  while ($startdate <= $enddate)
  {
    echo date("Y-m-d", $startdate)."\n";
    $startdate = strtotime("next monday", $startdate);
  }
}

echo print_monday_dates(strtotime("2011-03-28"), strtotime("2011-04-25"));

答案 1 :(得分:1)

尝试此功能

  function getAllMondays($startdate, $enddate) {
    $res = array();
    $tstart = strtotime($startdate);
    $tend = strtotime($enddate);
    if (date('N', $tstart) == 1) $res[] = date('Y-m-d', $tstart);
    while ($tstart <= $tend) {
      $tstart = strtotime('next monday', $tstart);
      $res[] = date('Y-m-d', $tstart);
      }
    return $res;
    }

并以这种方式使用

  $allmondays = getAllMondays('2011-03-28', '2011-04-25');
  print_r($allmondays);

得到这样的东西

Array
(
    [0] => 2011-03-28
    [1] => 2011-04-04
    [2] => 2011-04-11
    [3] => 2011-04-18
    [4] => 2011-04-25
)

INJOY

答案 2 :(得分:0)

我不知道PHP,但从逻辑上说,你不能在这些日期之间获得第一个星期一,然后以递归的方式每周一增加7天,直到它超过提供的最终日期?