从2个给定日期中查找多少个星期日?

cod*_*rex 2 php datetime

从01-01-2009到02-23-2009

如何找出这几天之间的星期天?

Pas*_*TIN 5

这样的事情怎么样:

$date = strtotime('2009-01-01 next sunday');
$dateMax = strtotime('2009-02-23');

$nbr = 0;
while ($date < $dateMax) {
  var_dump(date('Y-m-d', $date));
  $nbr++;
  $date += 7 * 24 * 3600;
}

var_dump($nbr);
Run Code Online (Sandbox Code Playgroud)

你得到的输出是:

string '2009-01-04' (length=10)
string '2009-01-11' (length=10)
string '2009-01-18' (length=10)
string '2009-01-25' (length=10)
string '2009-02-01' (length=10)
string '2009-02-08' (length=10)
string '2009-02-15' (length=10)
string '2009-02-22' (length=10)
Run Code Online (Sandbox Code Playgroud)

对于每个星期日的日期,和:

int 8
Run Code Online (Sandbox Code Playgroud)

对于星期日的数量

(我已经快速检查了,似乎这些日期确实是星期日)


这段代码的作用是:

  • 首先,获取2009-01-01之后的第一个星期日的日期
  • 那么,只要当前日期在2009-02-23之前,迭代
  • 在每次迭代中,添加7*24*3600秒(每周7天,每天24小时,每小时3600秒)

注意:我已经更改了日期的格式,使用YYYY-MM-DD,而不是DD-MM-YYY; 它是通常使用的格式 - 所以,使用这个格式可能是一个好主意,以确保strtotime正常工作.(不确定它的格式是否正常)