我有一个功能,它给了我特定年份的所有日历周。我创建了一个包含所有日历周的下拉菜单。我的功能看起来像这样:
function listYearWeeks($year) {
$weeks=array();
$run_stamp=strtotime($year."-01-01");
for ($x=0;$x<366;$x++) {
if (date("w",$run_stamp)==0) { // Montag
if ($weeks[date("W",$run_stamp)]=="") {
$weeks[date("W",$run_stamp)]=$run_stamp;
}
}
$run_stamp=($run_stamp+86400);
}
return $weeks;
}
我的html / php代码看起来像这样:
<?php $data=listYearWeeks(2018); ?>
<div class='row'>
<div class='col-md-4 col-xs-12 col-md-offset-3'>
<select class='form-control' name='calendar' id='calendar' onChange='changeDate()'>
<?php foreach ($data as $key=>$value) { ?>
<option value='".$value."'>Calendar week <?php ".$key." ?></option>
<?php } ?>
</select><br />
</div>
</div>
我现在有一个下拉菜单,现在是2018年的日历周。我需要实现的是,并非所有日历周都显示在选择选项中,而是应该从当前日历周开始,并且应该始终显示接下来的三个日历周。
所以选择选项应该是: 日历周23(当前日历周) 日历周24 日历周25 日历周26日
有人可以告诉我我需要更改以从当前日历周开始,只显示接下来的3个日历周吗?
答案 0 :(得分:0)
对于你想要的东西来说,这很重要
首先,你可以从现在开始,而不是从年初开始:
$run_stamp=strtotime($year."-01-01");
=&gt; $run_stamp=time();
但效率更高:
for($i = 0; $i < 3; $i++) {
$week = date("W", strtotime("+$i weeks"));
echo '<option value="' . $week . '">Calendar week ' . $week . '"</option>';
}
请注意,即使您在一年的最后一周,它也会有效。