Datum und Uhrzeit

Inhaltsverzeichnis

Die DateTime Klasse

Einführung

Repräsentiert ein Datum und eine Uhrzeit

Klassenbeschreibung

DateTime
class DateTime implements DateTimeInterface {
/* Konstanten */
const string DateTime::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTime::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTime::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTime::RFC822 = "D, d M y H:i:s O" ;
const string DateTime::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTime::RFC1036 = "D, d M y H:i:s O" ;
const string DateTime::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTime::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTime::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTime::RSS = "D, d M Y H:i:s O" ;
const string DateTime::W3C = "Y-m-d\TH:i:sP" ;
/* Methoden */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTime add ( DateInterval $interval )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static array getLastErrors ( void )
public DateTime modify ( string $modify )
public static DateTime __set_state ( array $array )
public DateTime setDate ( int $year , int $month , int $day )
public DateTime setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTime setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTime setTimestamp ( int $unixtimestamp )
public DateTime setTimezone ( DateTimeZone $timezone )
public DateTime sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Vordefinierte Konstanten

DateTime::ATOM
DATE_ATOM
Atom (Beispiel: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (Beispiel: 2005-08-15T15:52:01+0000)

Hinweis: Dieses Format ist nicht kompatibel zu ISO-8601, wird aber aus Gründen der Abwärtskompatibilität so belassen. Verwenden Sie statt dessen DateTime::ATOM oder DATE_ATOM für ISO-8601 Kompatibilität.

DateTime::RFC822
DATE_RFC822
RFC 822 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Genau wie DATE_ATOM (seit PHP 5.1.3)
DateTime::RSS
DATE_RSS
RSS (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (Beispiel: 2005-08-15T15:52:01+00:00)

Changelog

Version Beschreibung
5.5.0 Die Klasse implementiert nun DateTimeInterface.
5.4.24 Die Konstakte COOKIE verwendet nun vier Ziffern für das Jahr gemäß RFC 1036 statt wie zuvor zwei Ziffern (RFC 850).
5.2.2 DateTime-Objekt im Vergleich mit den Vergleichs-Operatoren funktioniert nun so wie erwartet. Zuvor wurden alle DateTime-Objekte als gleich betrachtet (unter Verwendung von ==).

Die DateTimeImmutable Klasse

Einführung

Diese Klasse verhält sich wie die Klasse DateTime, außer dass sie nie verändert, sondern statt dessen ein neues Objekt zurückgegeben wird.

Klassenbeschreibung

DateTimeImmutable
class DateTimeImmutable implements DateTimeInterface {
/* Methoden */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTimeImmutable add ( DateInterval $interval )
public static DateTimeImmutable createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static DateTimeImmutable createFromMutable ( DateTime $datetime )
public static array getLastErrors ( void )
public DateTimeImmutable modify ( string $modify )
public static DateTimeImmutable __set_state ( array $array )
public DateTimeImmutable setDate ( int $year , int $month , int $day )
public DateTimeImmutable setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTimeImmutable setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTimeImmutable setTimestamp ( int $unixtimestamp )
public DateTimeImmutable setTimezone ( DateTimeZone $timezone )
public DateTimeImmutable sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Das DateTimeInterface Interface

Einführung

DateTimeInterface ist dazu gedacht, dass ein gemeinsamer Type Hint für DateTime und DateTimeImmutable verwendet werden kann. Es ist nicht möglich dieses Interface durch Userland Klassen zu implementieren.

Klassenbeschreibung

DateTimeInterface
class DateTimeInterface {
/* Methoden */
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Changelog

Version Beschreibung
5.5.8 Der Versuch DateTimeInterface zu implementieren, erzeugt nun einen fatalen Fehler. Zuvor wurde kein Fehler erzeugt, aber das Verhalten war fehlerhaft.

Die DateTimeZone Klasse

Einführung

Abbildung der Zeitzone.

Klassenbeschreibung

DateTimeZone
class DateTimeZone {
/* Konstanten */
const integer DateTimeZone::AFRICA = 1 ;
const integer DateTimeZone::AMERICA = 2 ;
const integer DateTimeZone::ANTARCTICA = 4 ;
const integer DateTimeZone::ARCTIC = 8 ;
const integer DateTimeZone::ASIA = 16 ;
const integer DateTimeZone::ATLANTIC = 32 ;
const integer DateTimeZone::AUSTRALIA = 64 ;
const integer DateTimeZone::EUROPE = 128 ;
const integer DateTimeZone::INDIAN = 256 ;
const integer DateTimeZone::PACIFIC = 512 ;
const integer DateTimeZone::UTC = 1024 ;
const integer DateTimeZone::ALL = 2047 ;
const integer DateTimeZone::ALL_WITH_BC = 4095 ;
const integer DateTimeZone::PER_COUNTRY = 4096 ;
/* Methoden */
public __construct ( string $timezone )
public array getLocation ( void )
public string getName ( void )
public int getOffset ( DateTime $datetime )
public array getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
public static array listAbbreviations ( void )
public static array listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )
}

Vordefinierte Konstanten

DateTimeZone::AFRICA

Afrikanische Zeitzone

DateTimeZone::AMERICA

Amerikanische Zeitzone

DateTimeZone::ANTARCTICA

Antarktische Zeitzone

DateTimeZone::ARCTIC

Arktische Zeitzone.

DateTimeZone::ASIA

Asiatische Zeitzone

DateTimeZone::ATLANTIC

Atlantische Zeitzone.

DateTimeZone::AUSTRALIA

Australische Zeitzone.

DateTimeZone::EUROPE

Europäische Zeitzone.

DateTimeZone::INDIAN

Indische Zeitzone.

DateTimeZone::PACIFIC

Pazifische Zeitzonen

DateTimeZone::UTC

UTC Zeitzonen

DateTimeZone::ALL

Alle Zeitzonen

DateTimeZone::ALL_WITH_BC

Alle Zeitzonen mit Abwärtskompabilität.

DateTimeZone::PER_COUNTRY

Zeitzonen pro Land

Die DateInterval Klasse

Einführung

Repräsentiert eine Zeitspanne.

Eine Zeitspanne wird entweder als feste Zeit (in Jahren, Monaten, Tagen, Stunden etc.) oder als String in einem Format, das vom Konstruktor der DateTime Klasse unterstützt wird, dargestellt.

Klassenbeschreibung

DateInterval
class DateInterval {
/* Eigenschaften */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public integer $invert ;
public mixed $days ;
/* Methoden */
public __construct ( string $interval_spec )
public static DateInterval createFromDateString ( string $time )
public string format ( string $format )
}

Eigenschaften

y

Anzahl der Jahre.

m

Anzahl der Monate.

d

Anzahl der Tage.

h

Anzahl der Stunden.

i

Anzahl der Minuten.

s

Anzahl der Sekunden.

invert

Ist 1, wenn die Zeitspanne negativ ist, und sonst 0. Siehe DateInterval::format.

days

Wenn das DateInterval Objekt durch DateTime::diff erstellt wurde, dann enthält diese Eigenschaft die Gesamtanzahl der Tage zwischen dem Start und Enddatum. Ansonsten enthält days den Wert FALSE.

Vor PHP 5.4.20/5.5.4 ist der Wert -99999 anstelle von FALSE

Die DatePeriod Klasse

Einführung

Stellt einen Datumsbereich dar.

Ein Datumsbereich ermöglicht die Iteration über eine Reihe von Datumsangaben und Uhrzeiten, die sich in regelmäßigen Intervallen wiederholen, über einen bestimmten Zeitraum.

Klassenbeschreibung

DatePeriod
class DatePeriod implements Traversable {
/* Konstanten */
const integer DatePeriod::EXCLUDE_START_DATE = 1 ;
/* Methoden */
public __construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public __construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public __construct ( string $isostr [, int $options ] )
public DateInterval getDateInterval ( void )
public DateTimeInterface getEndDate ( void )
public DateTimeInterface getStartDate ( void )
}

Vordefinierte Konstanten

DatePeriod::EXCLUDE_START_DATE

Anfangsdatum ausschließen; verwendet mit DatePeriod::__construct.