Конструктор класса DateTime


date_create

(PHP 5 >= 5.2.0)

DateTime::__construct -- date_create Конструктор класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Процедурный стиль

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Создает и возвращает новый экземпляр класса DateTime.

Список параметров

time

Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.

Если используется аргумент $timezone, то для получения текущего времени в новом объекте достаточно передать NULL в качестве этого аргумента.

timezone

Объект класса DateTimeZone представляющий временную зону параметра $time.

Если аргумент $timezone не задан, будет использована текущая временная зона.

Замечание:

Значение аргумента $timezone равно как и текущая временная зона не будут учитываться, если в качестве аргумента $time передается метка времени UNIX (напрмер @946684800) или время, в котором временная зона уже содержится (например 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный объект класса DateTime. Процедурный стиль возвращает FALSE в случае возникновения ошибки.

Ошибки

В случае ошибки выбрасывает исключение Exception.

Список изменений

Версия Описание
5.3.0 В случае задания параметру time неверного формата даты/времени выбрасывается исключение. Раньше скрипт выдавал ошибку.

Примеры

Пример #1 Пример использования DateTime::__construct()

Объектно-ориентированный стиль

<?php
try {
    
$date = new DateTime('2000-01-01');
} catch (
Exception $e) {
    echo 
$e->getMessage();
    exit(
1);
}

echo 
$date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date 
date_create('2000-01-01');
if (!
$date) {
    
$e date_get_last_errors();
    foreach (
$e['errors'] as $error) {
        echo 
"$error\n";
    }
    exit(
1);
}

echo 
date_format($date'Y-m-d');
?>

Результат выполнения данных примеров:

 2000-01-01 

Пример #2 Хитрости при использовании DateTime::__construct()

<?php
// Дата/время во временной зоне Вашего компьютера.
$date = new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Дата/время в заданной временной зоне.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время во временной зоне Вашего компьютера.
$date = new DateTime();
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время в заданной временной зоне.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Использование метки времени UNIX. 
// Обратите внимание: результат во временной зоне UTC.
$date = new DateTime('@946684800');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Несуществующие значения все равно обрабатываются.
$date = new DateTime('2000-02-30');
echo 
$date->format('Y-m-d H:i:sP') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

 2000-01-01 00:00:00-05:00 2000-01-01 00:00:00+12:00 2010-04-24 10:24:16-04:00 2010-04-25 02:24:16+12:00 2000-01-01 00:00:00+00:00 2000-03-01 00:00:00-05:00 

Смотрите также