Как я могу сгенерировать массив дат, в которые предмет должен быть взят в классе, если дано расписание для этого предмета в неделю - PullRequest
1 голос
/ 15 июня 2019

Предположим, у меня есть расписание для определенного предмета с кодом субъекта (MI132).Теперь, согласно расписанию, занятия MI132 проводятся каждую неделю в понедельник, вторник и среду.Сессия может начаться в день, скажем, (12/01/2019).Теперь первый урок по предмету начинается 12/01/2019, а последний урок - 30/11/2019.То, что я хочу, это массив дат, в которые этот конкретный предмет MI132 будет иметь классы?Теперь я знаю, как написать код для этого на PHP.Это будет код, скажем, 50-100 строк.У меня есть логика со мной.Но есть ли у нас встроенная функция, которая дает мне массив дат (на период 12/01 / 2019-31 / 11/2019), когда я предоставляю это только дни?

Любой другой подход будетТакже следует ценить.Мне нужен только массив дат, на который у этого предмета будет класс.

1 Ответ

1 голос
/ 15 июня 2019

Это не единственный класс, как вы спрашиваете, но есть встроенные классы, которые позволят вам делать то, что вам нужно, в части кода: DateInterval и DatePeriod

$start = '12/01/2019'; $end ='31/01/2019';

$start = DateTime::createFromFormat('d/m/Y', $start);
$end = DateTime::createFromFormat('d/m/Y', $end);

$each = new DateInterval('P1D');
$period = new DatePeriod($start, $each, $end);

$dates = [];
foreach ($period as $date) {
    // Check if its between monday and wednesday 
    $weekday = intval($date->format('N'));
    if ($weekday >= 1 && $weekday <= 3)
       $dates[] = $date;
}

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