使用选项生成选择字段以选择日历周

时间:2014-01-13 11:49:50

标签: php function date select

我想创建一个选择字段,您可以在其中选择最后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是当前的日历周刊

1 个答案:

答案 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');
}

demo

或者只是将示例中的日期格式从$cw = date('W',更改为$cw = date('W o',,其中格式o为ISO-8601年号read more here