w3lifer / php-calendar
功能全面的PHP日历
1.0.0
2022-05-20 22:55 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-26 17:55:23 UTC
README
安装
composer require w3lifer/php-calendar
使用
默认配置
可以根据您的意愿进行更改
$phpCalendar = new PhpCalendar([ 'language' => 'en', 'monthNames' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], 'weekDayAbbrs' => ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'], 'firstDayOfWeek' => 1, 'timezone' => date_default_timezone_get(), ]);
方法 get()
此方法是该类中的主要公共方法
public function get( int $numberOfMonths = 12, int $startMonth = null, // Default: date('n') int $startYear = null // Default: date('Y') ): PhpCalendar
它返回一个具有以下公共属性的 PhpCalendar
对象
$html string
— HTML格式的日历$prevPeriodParams array
— 上一个期间的参数$nextPeriodParams array
— 下一个期间的参数
以下期间参数可用(数组键)
numberOfMonth
startMonth
startYear
PhpCalendar
类还定义了一个__toString()
方法,该方法简单地返回其自己的$html
属性(HTML日历)
HTML日历示例
<div class="php-calendar" data-timezone="UTC" data-timezone-offset="0"> <div class="php-calendar_month-box" data-month-number="1"> <table> <caption> <span class="php-calendar_month-name">January</span> <span class="php-calendar_year-name">1970</span> </caption> <tr> <th>Mon<th>Tue<th>Wed<th>Thu<th>Fri<th>Sat<th>Sun <tr> <td data-week-number="1" data-day-number="363" data-timestamp="-259200" class="php-calendar_day_other-month"> <span class="php-calendar_day">29</span> <td data-week-number="1" data-day-number="364" data-timestamp="-172800" class="php-calendar_day_other-month"> <span class="php-calendar_day">30</span> <td data-week-number="1" data-day-number="365" data-timestamp="-86400" class="php-calendar_day_other-month"> <span class="php-calendar_day">31</span> <td data-week-number="1" data-day-number="1" data-timestamp="0"> <span class="php-calendar_day php-calendar_today">1</span> <td data-week-number="1" data-day-number="2" data-timestamp="86400"> <span class="php-calendar_day">2</span> <td data-week-number="1" data-day-number="3" data-timestamp="172800"> <span class="php-calendar_day">3</span> <td data-week-number="1" data-day-number="4" data-timestamp="259200"> <span class="php-calendar_day">4</span> ... </table> </div> ... </div>
12个月日历示例
<?php $year = $_GET['year'] ?? null; $phpCalendar = (new PhpCalendar())->get(12, 1, $year); // ->getYear($year); $prevSearchParams = '?year=' . $phpCalendar->prevPeriodParams['startYear']; $nextSearchParams = '?year=' . $phpCalendar->nextPeriodParams['startYear']; ?> <style>body {text-align: center;} table {margin: auto;}</style> <hr> <a href="<?= $prevSearchParams ?>">«««</a> <a href="<?= $nextSearchParams ?>">»»»</a> <hr> <?= $phpCalendar ?>
周期日历示例
<?php $numberOfMonths = $_GET['number-of-months'] ?? 6; // Set `$startMonth` to `null` to get an auto-scrolling calendar $startMonth = $_GET['start-month'] ?? 1; $startYear = $_GET['start-year'] ?? null; $phpCalendar = (new PhpCalendar())->get($numberOfMonths, $startMonth, $startYear); $prevSearchParams = '?number-of-months=' . $numberOfMonths . '&start-month=' . $phpCalendar->prevPeriodParams['startMonth'] . '&start-year=' . $phpCalendar->prevPeriodParams['startYear']; $nextSearchParams = '?number-of-months=' . $numberOfMonths . '&start-month=' . $phpCalendar->nextPeriodParams['startMonth'] . '&start-year=' . $phpCalendar->nextPeriodParams['startYear']; ?> <style>body {text-align: center;} table {margin: auto;}</style> <hr> <a href="<?= $prevSearchParams ?>">«««</a> <a href="<?= $nextSearchParams ?>">»»»</a> <hr> <?= $phpCalendar ?>
测试
- 要安装PHPUnit
make composer-i
- 要运行测试
make tests