如何在不同年份的几周内循环


How to loop through weeks in different year

我的输入为$fromweek=50$fromyear=2015则CCD_ 3和CCD_

如何在表格列中循环周数?

for ($i=$fromweek; $i<=$toweek; $i++) {            
    echo '<th>week '.$i.'</th>';
}

这里需要小心,因为根据ISO 8601标准,有些年份可能有53周。2015年就是其中之一。

''DateTime类就是这样做的。它们将自动计算leapyears等,并使日期操作更加容易。花时间仔细阅读一下是值得的。

像这样的东西应该对你有用:

$fromweek=50;
$fromyear=2015;
$toweek=2;
$toyear=2016;
$interval = new DateInterval('P7D');
$start = (new 'DateTime())->setISODate($fromyear, $fromweek);
$end = (new 'DateTime())->setISODate($toyear, $toweek);
$period = new 'DatePeriod($start, $interval, $end->add($interval));
foreach($period as $date){
    echo $date->format('d-m-Y') .  PHP_EOL;
}

看到它工作。

您可以使用周数和年创建两个日期,并对它们进行比较(当$date1超过$date2时),并使用DateInterval按周增加$date1,请参见下面的示例:

$date1 = new DateTime();
$date1->setISODate(2015, 50);
$date2 = new DateTime();
$date2->setISODate(2016, 2);
while($date1 <= $date2) {
    echo $date1->format('W').PHP_EOL;
    $date1->add(new DateInterval('P1W'));
}

实际操作:https://eval.in/573305