2014-01-13 4 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.

Смежные вопросы