DateTime
PHP Manual

DateTime::__construct

(PHP 5 >= 5.2.0)

DateTime::__constructReturns new DateTime object

Описание

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

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

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

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

Returns new DateTime object.

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

time

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

Enter NULL here to obtain the current time when using the $timezone parameter.

timezone

A DateTimeZone object representing the desired time zone.

If $timezone is omitted, the current timezone will be used.

Замечание:

The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

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

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

Ошибки

Emits Exception in case of an error.

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

Версия Описание
5.3.0 If an invalid date is specified, then an exception is now thrown. Previously an error was emitted.

Примеры

Пример #1 DateTime::__construct() example

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

<?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 Intricacies of DateTime::__construct()

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo 
$date->format('Y-m-d H:i:sP') . "\n";

// Non-existant values roll over.
$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

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


DateTime
PHP Manual