Я пытаюсь go вернуться на один день назад в календаре - Что я делаю не так?
Мой подход:
$weekdays = array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
///////
function getDates($year) {
$dates = array();
date("L", mktime(0, 0, 0, 7, 7, $year)) ? $days = 366 : $days = 365;
///
for($i = 1; $i <= $days; $i++) {
// get Unix timestamp for a date
$month = date('F', mktime(0, 0, 0, 1, $i, $year));
$wk = date('W', mktime(0, 0, 0, 1, $i, $year));
$wkDay = date('D', mktime(0, 0, 0, 1, $i, $year));
$day = date('d', mktime(0, 0, 0, 1, $i, $year));
///
$dates[$month][$wk][$wkDay] = $day;
}
return $dates;
}
//////
$year = 2020; // from this Year
$dates = getDates($year);
$countW = 1; // for counting weeks
// Output code
echo '<h2><span>Calendar '.$year.'</span></h2>';
foreach($dates as $month => $weeks) {
echo '<div>';
echo '<table>';
echo '<caption>'.$year.' '.$month.'</caption>';
echo '<tr>';
echo '<th>W</th>';
echo '<th>'.implode('</th><th>', $weekdays).'</th>';
echo '</tr>';
echo '<tr>';
foreach ($weeks as $week => $days){
echo '<tr><td>'.$countW++.'</td>';
foreach ($weekdays as $day) {
echo '<td>';
/* I'm overwhelmed here! */
echo isset($days[$day]) ? $days[$day] : date('d', strtotime('-1 day')); // outputted is 5
echo '</td>';
}
echo '</tr>';
}
echo '</tr>';
echo '</table>';
}
Я попробовал следующие коды:
date('d', strtotime('-1 day')) // outputted: 5 (today is 6)
$jd = gregoriantojd(01,06,2020); echo jddayofweek($jd,2); // outputted: Mon (today is Tue)
С этим кодом я получаю день с текущего дня до. Ожидается за день до указанного дня
того, что происходит
ожидается