DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__construct -- date_createGibt ein neues DateTime Objekt zurück

Beschreibung

Objektorientierter Stil

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

Prozeduraler Stil

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

Gibt ein neues DateTime Objekt zurück.

Parameter-Liste

time

Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

Wird "now" übergeben, so wird die aktuelle Uhrzeit verwendet, wenn $timezone übergeben wird.

timezone

Ein DateTimeZone Objekt, welches die Zeitzone von $time repräsentiert.

Wenn $timezone nicht übergeben wird, wird die aktuelle Zeitzone verwendet.

Hinweis:

Der $timezone Parameter und die aktuelle Zeitzone werden ignoriert, wenn der $time Parameter entweder ein UNIX-Zeitstempel (z.B: @946684800) ist, oder wenn in ihm eine Zeitzone spezifiziert wird (z.B: 2010-01-28T15:00:00+02:00).

Rückgabewerte

Gibt eine neue Instanz von DateTime zurück. Prozeduraler Stil Im Fehlerfall wird FALSE zurückgegeben.

Fehler/Exceptions

Gibt eine Exception im Fehlerfall zurück.

Changelog

Version Beschreibung
7.1 Von nun an werden die Mikrosekunden mit dem tatsächlichen Wert belegt, nicht mehr mit '00000'.
5.3.0 Wenn time ein ungültiges Datums-/Zeitformatenthält, dann wird nun eine Exception geworfen. Davor wurde ein Fehler erzeugt.

Beispiele

Beispiel #1 DateTime::__construct() example

Objektorientierter Stil

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

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

Prozeduraler Stil

<?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');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-01

Beispiel #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-existent values roll over.
$date = new DateTime('2000-02-30');
echo 
$date->format('Y-m-d H:i:sP') . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Siehe auch