有人能告诉我如何在PHP中显示两个日期之间所涵盖的所有周数吗?这些日期可能是不同年份的。
例如,如果我使用开始日期“2011-09-16”和结束日期“2011-09-21”,它将显示第37和38周。
有人能告诉我如何在PHP中显示两个日期之间所涵盖的所有周数吗?这些日期可能是不同年份的。
例如,如果我使用开始日期“2011-09-16”和结束日期“2011-09-21”,它将显示第37和38周。
您可以使用类似于以下内容的方法...
$startTime = strtotime('2011-12-12');
$endTime = strtotime('2012-02-01');
$weeks = array();
while ($startTime < $endTime) {
$weeks[] = date('W', $startTime);
$startTime += strtotime('+1 week', 0);
}
var_dump($weeks);
array(8) {
[0]=>
string(2) "50"
[1]=>
string(2) "51"
[2]=>
string(2) "52"
[3]=>
string(2) "01"
[4]=>
string(2) "02"
[5]=>
string(2) "03"
[6]=>
string(2) "04"
[7]=>
string(2) "05"
}
DateTime
,DateInterval
和DatePeriod
的组合来获取给定时间段内所有周的迭代器。$p = new DatePeriod(
new DateTime('2011-12-01'),
new DateInterval('P1W'),
new DateTime('2012-02-01')
);
foreach ($p as $w) {
var_dump($w->format('W'));
}
/*
string(2) "48"
string(2) "49"
string(2) "50"
string(2) "51"
string(2) "52"
string(2) "01"
string(2) "02"
string(2) "03"
string(2) "04"
*/
在循环中使用date('W')
和strtotime('+1 week', $time)
的组合