В частности, 08 и 09 доставили мне большие неприятности.Это ошибка PHP?
Объяснение: У меня есть «виджет» календаря на нескольких сайтах наших клиентов, где у нас есть календарь в жестком коде HTML (я знаю, что функция PHP может генерировать n месяцев), но начальник сказал «нет»).
Внутри каждого дня есть функция PHP, которая проверяет события в этот день, передавая текущий день месяца следующим образом:
<td valign="top">01<?php printShowLink(01, $events) ?></td>
$ events - это массив всех событий в этом месяце, и функция проверяет, произошло ли событие в этот день:
function printShowLink($dayOfMonth, $eventsArray) {
$show = array();
$printedEvent = array();
$daysWithEvents = array();
foreach($eventsArray as $event) {
if($dayOfMonth == $event['day'] && !in_array($event['id'], $printedEvent)){
if(in_array($event['day'], $daysWithEvents)) {
echo '<hr class="calendarLine" />';
} else {
echo '<br />';
}
$daysWithEvents[] = $event['day']; // string parsed from timestamp
if($event['linked'] != 1) {
echo '<div class="center cal_event '.$event['class'].'" id="center"><span title="'.$event['title'].'" style="color:#666666;">'.$event['shorttitle'].'</span></div>';
$printedEvent[] = $event['id'];
} else {
echo '<div class="center cal_event '.$event['class'].'" id="center"><a href="event.php?id='.$event['id'].'" title="'.$event['title'].'">'.$event['shorttitle'].'</a></div>';
$printedEvent[] = $event['id'];
}
}
}
}
8-го и 9-го события не будут отображаться.Передача строки дня вместо заполненного нулями целого числа вызывает ту же проблему.
Решение - это то, что должно было быть на первом месте, незаполненное целое число.Однако мой вопрос в том, видели ли вы это странное поведение с 08 и / или 09?
Я прогуглил это и не смог ничего найти.