Класс для обработки даты и времени
- <?php
- /*
- * +-------------------------------------+
- * | Класс для работы с датой и временем |
- * +-------------------------------------+
- * | Copyright (c) 2015 |
- * +-------------------------------------+
- * | Author: The PHP Group |
- * | Author: Jahak <[email protected]> |
- * +-------------------------------------+
- */
- class Date
- {
- /**
- * если год високосный
- * @var array
- */
- private $common = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
- /**
- * если год невисокосный
- * @var array
- */
- private $leap = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
- /**
- * Выводит количество дней в месяце
- * в зависимости от года
- * @param int $y
- * @param int $m
- * @return int
- */
- public function daysInMonth( $y, $m )
- {
- return $this->isLeapYear($y) ? $this->leap[$m] : $this->common[$m];
- }
- /**
- * Проверяет корректность времени
- * @param int $h часы от 0 до 23
- * @param int $i минуты от 0 до 59
- * @param int $s секунды от 0 до 59
- * @return boolean
- */
- public function validTime( $h, $i, $s )
- {
- if ( $h < 0 || $h > 23 || $i < 0 || $i > 59 || $s < 0 || $s > 59 )
- {
- return false;
- }
- return true;
- }
- /**
- * Проверяет корректность даты
- * @param int $y год xxxx
- * @param int $m месяц от 1 до 12
- * @param int $d день от 1 до 31
- * @return boolean
- */
- public function validDate( $y, $m, $d )
- {
- if ( $m < 1 || $m > 12 || $d < 1 || $d > $this->daysInMonth($y, $m) )
- {
- return false;
- }
- return true;
- }
- /**
- * Проверяет, является заданный год високосным или нет
- * @param int $y год xxxx
- * @return boolean
- */
- public function isLeapYear( $y )
- {
- return (($y) % 4 == 0 && (($y) % 100 != 0 || ($y) % 400 == 0));
- }
- }