我想创建一个选择字段,您可以在其中选择最后5个和下一个5之间的所有日历周。 值得注意的是,重要的是,过去5周中的一些是在2013年,有些是在2014年。 我的出发点是:
function generateSelect($calendarweek)
{
$this_cw = $calenderweek;
$return = "<select>";
list($y, $m, $d) = explode('-', date('Y-m-d'));
for ($i=-5; $i<=5; $i++)
{
$cw = date('W', mktime(0, 0, 0, $m, $d + 7*$i, $y));
$return .= "<option>".$cw." HERE I WANT THE CORRESPONDING YEAR</option>";
}
$return .= "</select>";
return $return;
}
我的主要问题是相应的一年。 我不知道我的解决方案是否那么好。 $ calendarweek是当前的日历周刊
答案 0 :(得分:0)
这个问题的答案几乎相同to this one:
$weeks = 5; # number of weeks before and after current week
$dt = new DateTime;
$dt->modify("-$weeks week");
for ($i = 0; $i <= $weeks * 2; $i++) {
echo $dt->format('W o'), "\n";
$dt->modify('+1 week');
}
或者只是将示例中的日期格式从$cw = date('W',
更改为$cw = date('W o',
,其中格式o
为ISO-8601年号read more here。