Я хочу разделить каждый месяц на дни, как на картинке:
Я пишу код, но у меня есть что-то вроде этого:
<?php
$start_date = date('Y-m-d', strtotime('2015-12-28'));
$end_date = date('Y-m-d', strtotime('2018-01-01'));
$i=1;
for($date = $start_date; $date <= $end_date; $date = date('Y-m-d', strtotime($date. ' + 7 days'))) {
echo getWeekDates($date, $start_date, $end_date, $i);
echo "\n";
$i++;
}
function getWeekDates($date, $start_date, $end_date, $i) {
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}+1"));
if($from < $start_date) $from = $start_date;
$to = date("Y-m-d", strtotime("{$year}-W{$week}-7"));
if($to > $end_date) $to = $end_date;
echo "$i. od ".$from." do ".$to.'<br>';
}
?>
выход:
1. od 2015-12-28 do 2016-01-03
2. od 2016-01-04 do 2016-01-10
3. od 2016-01-11 do 2016-01-17
4. od 2016-01-18 do 2016-01-24
Я не знаю, как исключить исключения, такие как неделя в месяце имеет 1,2,3,4,5 или 6 дней ….
Вы можете использовать / изменить этот класс добиться того, что вы хотите.
Код в значительной степени прокомментирован, чтобы понять логику.
Вот как вы можете распечатать календарь.
include 'calendar.php';
$calendar = new Calendar();
echo $calendar->show();
Других решений пока нет …