Класс для обработки даты и времени

  1. <?php
  2. /*
  3.  * +-------------------------------------+
  4.  * | Класс для работы с датой и временем |
  5.  * +-------------------------------------+
  6.  * | Copyright (c) 2015                  |
  7.  * +-------------------------------------+
  8.  * | Author: The PHP Group               |
  9.  * | Author: Jahak <[email protected]>  |
  10.  * +-------------------------------------+
  11.  */
  12. class Date
  13. {
  14.  
  15.     /**
  16.      * если год високосный
  17.      * @var array
  18.      */
  19.     private $common = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  20.  
  21.     /**
  22.      * если год невисокосный
  23.      * @var array
  24.      */
  25.     private $leap = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  26.  
  27.     /**
  28.      * Выводит количество дней в месяце
  29.      * в зависимости от года
  30.      * @param int $y
  31.      * @param int $m
  32.      * @return int
  33.      */
  34.     public function daysInMonth( $y, $m )
  35.     {
  36.         return $this->isLeapYear($y) ? $this->leap[$m] : $this->common[$m];
  37.     }
  38.  
  39.     /**
  40.      * Проверяет корректность времени
  41.      * @param int $h часы от 0 до 23
  42.      * @param int $i минуты от 0 до 59
  43.      * @param int $s секунды от 0 до 59
  44.      * @return boolean
  45.      */
  46.     public function validTime( $h, $i, $s )
  47.     {
  48.         if ( $h < 0 || $h > 23 || $i < 0 || $i > 59 || $s < 0 || $s > 59 )
  49.         {
  50.             return false;
  51.         }
  52.         return true;
  53.     }
  54.  
  55.     /**
  56.      * Проверяет корректность даты
  57.      * @param int $y год xxxx
  58.      * @param int $m месяц от 1 до 12
  59.      * @param int $d день от 1 до 31
  60.      * @return boolean
  61.      */
  62.     public function validDate( $y, $m, $d )
  63.     {
  64.         if ( $m < 1 || $m > 12 || $d < 1 || $d > $this->daysInMonth($y, $m) )
  65.         {
  66.             return false;
  67.         }
  68.         return true;
  69.     }
  70.  
  71.     /**
  72.      * Проверяет, является заданный год високосным или нет
  73.      * @param int $y год xxxx
  74.      * @return boolean
  75.      */
  76.     public function isLeapYear( $y )
  77.     {
  78.         return (($y) % 4 == 0 && (($y) % 100 != 0 || ($y) % 400 == 0));
  79.     }
  80.  
  81. }
:)

Реклама

Мы в соцсетях

tw tg yt gt