如何从PHP中的两个日期的每个星期一和每两周一次提取?

met*_*rce 4 php algorithm jquery datepicker date-range

我正在使用臭名昭着的jQuery UI的Datepicker,在我的表单中我选择了两个日期的范围.

第一个表示开始日期,另一个表示结束日期.

我现在需要的是algorthm,一些提示,方向或帮助,用于计算这两个日期之间的每个星期一.

例如:

start: 2011-06-01
end:   2011-06-30
Run Code Online (Sandbox Code Playgroud)

应该把星期一的这四(4)个日期提取给我:

1st: 2011-06-06
2nd: 2011-06-13
3rd: 2011-06-20
4th: 2011-06-27
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这个?

而且,星期一每两周我都需要它:

每两周一次的结果应该是:

1st: 2011-06-06
2rd: 2011-06-20
Run Code Online (Sandbox Code Playgroud)

dyn*_*mic 6

$start = strtotime('2011-06-01');
$end = strtotime('2011-06-30');

$mondays=array();

while( $start <= $end  ) {
  if ( date('N',$start)==1 )   
    $mondays[]=$start;

  $start += 86400; //> incrementing one day   
                   //> i could have used strtotime('+1 day') but math sum is 10x faster

}
//> Untested
Run Code Online (Sandbox Code Playgroud)

现在你有$mondays阵中的所有星期一.

附录

请注意,+86400由于夏令时,可能会导致结果不一致.如果您的应用程序是关键任务更好的使用+1 day

strtotime('2010-10-31') + 86400 回报 2010-10-31