Example #1
0
File: Time.php Project: techart/tao
 /**
  * Создает объект класса Time_DateTime
  *
  * Момент времени может быть задан различными способами:
  * - в виде числа -- в этом случае число является значением UNIX timestamp;
  * - в виде строки -- в этом случае делается попытка разбора строки и создания
  * соответствущего объекта;
  * - в виде объекта класса Time.DateTime -- в этом случае метод просто возвращает этот объект.
  *
  * Парсинг строки выполняется с помощью метода Time.DateTime::parse() без указания
  * формата, что, в свою очередь, приводит к вызову встроенной функции {@link http://php.ru/manual/function.strtotime.html strtotime()}.
  *
  * @see    Time_DateTime::parse()
  *
  * @params integer|string|object $timestamp Момент времени
  *
  * @return Time_DateTime
  */
 public static function DateTime($timestamp = null)
 {
     if (is_null($timestamp)) {
         return new Time_DateTime();
     }
     switch (true) {
         case $timestamp instanceof Time_DateTime:
             return clone $timestamp;
         case !is_object($timestamp) && (string) (int) $timestamp === (string) $timestamp:
             $date = new Time_DateTime("@{$timestamp}");
             $date->setTimezone(new DateTimeZone(date_default_timezone_get()));
             return $date;
         default:
             return Time_DateTime::parse((string) $timestamp);
     }
 }