对于ex-
Day1 2011-03-28
Day2 2011-04-25
周开始日
2011-03-28
2011-4-4
2011-4-11
2011-4-18
2011-04-25
答案 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天,直到它超过提供的最终日期?