Дата и время -> выбрать определенные календарные недели - PullRequest
0 голосов
/ 04 июня 2018

У меня есть функция, которая дает мне все календарные недели определенного года.Я создал выпадающее меню со всеми календарными неделями.Моя функция выглядит примерно так:

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 календарных недели?

1 Ответ

0 голосов
/ 04 июня 2018

Это тяжелая вещь для того, что вы хотите.
Сначала вы можете начать с этого момента, а не с начала года:
$run_stamp=strtotime($year."-01-01"); => $run_stamp=time();

Но более эффективно:

for($i = 0; $i < 3; $i++) {
    $week = date("W", strtotime("+$i weeks"));
    echo '<option value="' . $week . '">Calendar week ' . $week . '"</option>';
}

Обратите внимание, что таким образом это будет работать, даже если вы находитесь на последней неделе года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...