zdenekgebauer / month-calendar
简单的HTML月历生成器
v2.0.0
2021-01-04 11:57 UTC
Requires
- php: >=8.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-04 20:04:02 UTC
README
渲染日历的PHP脚本的基类。
安装
composer require zdenekgebauer/month-calendar
使用
$date = new DateTime(); $calendar = new Calendar($date); $calendar->firstDayOfWeek(0); // 0-6, 0=Sunday $calendar->showOtherMonths = true; // show days from previous and next month echo $calendar->render();
自定义
class CustomCalendar extends ZdenekGebauer\MonthCalendar\Calendar { /** * @return array<string> */ protected function weekdays(): array { // own weekdays names from Sunday return ['Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So']; } protected function renderCaption(): string { // own table caption return '<caption>' . $this->date->format('m/Y') . '</caption>'; } protected function renderDay(DateTimeInterface $currentDate, bool $isOtherMonth = false): string { // own content of day, ie. info "occupied" $day = (int)$currentDate->format('j'); $cssClass = ''; $content = ''; if ($day === 10 || $day === 15) { $cssClass = 'occupied'; $content = 'occupied'; } if ($isOtherMonth) { $cssClass .= ' other-month'; } return '<td data-date="' . $currentDate->format('Y-m-d') . '" class=' . $cssClass . '">' . $currentDate->format('j') . '<hr>' . ($content) . '</td>'; } protected function renderFooter(): string { // own table footer return '<tfoot><tr><td colspan="7">occupied days: 2</td></tr></tfoot>'; } }