DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

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

Описание

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

public DateTime::__construct ( string $datetime = "now" , DateTimeZone|null $timezone = null )

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

date_create ( string $datetime = "now" , DateTimeZone|null $timezone = null ) : DateTime|false

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

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

datetime

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

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

timezone

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

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

Замечание:

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

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

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

Ошибки

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

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

Версия Описание
7.1.0 Теперь микросекунды будут заполняться корректным значением, а не '00000'.

Примеры

Пример #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

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