datetime — PHP календарь должен начинать неделю с воскресенья

У меня есть сценарий, но это не то, что мне нужно (начать каждую неделю с воскресенья без ошибок). Изменить («- 1 день») или изменить («+ 6 дней») показывает, что мне нужно, но иногда это приводит к предыдущей или следующей неделе соответственно.
Я много искал решение, но не смог его найти.
Нужна помощь.

Код:

<?php

$dt = new DateTime;
if (isset($_GET['year']) && isset($_GET['week'])) {
$dt->setISODate($_GET['year'], $_GET['week']);
} else {
$dt->setISODate($dt->format('o'), $dt->format('W'));
}
$year = $dt->format('o');
$week = $dt->format('W');
/*$dt->modify("-1 days");*/ // This -1 or +6 will make it starts with sunday but sometimes it shows the wrong week.
?>

<div class="next-pre">
<div class="pre-week float-left">
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Pre Week</a>
</div>

<div class="next-week float-right">
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Next Week</a>
</div>
</div>

<?php
$numDay = 1;
do {

?>
<div class="calender">
<table class="weeks">
<tr>
<?php if($dt->format('d M Y') == date('d M Y')){ ?>
<td class="color cell"><?php echo $dt->format('l'); ?>   <strong class="margin5"> <?php echo $dt->format('d M Y'); ?> </strong></td>
<td class="default cell"> </td>
<?php } else{ ?>
<td class="default cell"><?php echo $dt->format('l'); ?>   <strong class="margin5"> <?php echo $dt->format('d M Y');  ?> </strong></td>
<td class="default cell"> </td>
<?php } ?>
</tr>
</table>
</div>

<?php
/*echo "<td>" . $dt->format('l') . "<br>" . $dt->format('d M Y') . "</td>\n";*/
$dt->modify('+1 days');
$numDay++;

} while ($numDay<=7);

?>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector