2014-01-13 102 views
0

我想創建一個選擇字段,您可以選擇最後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是當前calenderweek

回答

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