Das DateTimeInterface-Interface

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Einführung

Das DateTimeInterface wurde eingeführt, damit Parameter-, Rückgabe- oder Eigenschaftstyp-Deklarationen entweder DateTime oder DateTimeImmutable als Wert annehmen können. Das DateTimeInterface ist dazu gedacht, einen gemeinsamen Typehint für DateTime und DateTimeImmutable zu ermöglichen. Es ist nicht möglich, dieses Interface durch Userland-Klassen zu implementieren.

Interface-Übersicht

interface DateTimeInterface {
/* Konstanten */
const string ATOM = "Y-m-d\TH:i:sP";
const string COOKIE = "l, d-M-Y H:i:s T";
const string ISO8601 = "Y-m-d\TH:i:sO";
const string RFC822 = "D, d M y H:i:s O";
const string RFC850 = "l, d-M-y H:i:s T";
const string RFC1036 = "D, d M y H:i:s O";
const string RFC1123 = "D, d M Y H:i:s O";
const string RFC7231 = "D, d M Y H:i:s \G\M\T";
const string RFC2822 = "D, d M Y H:i:s O";
const string RFC3339 = "Y-m-d\TH:i:sP";
const string RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP";
const string RSS = "D, d M Y H:i:s O";
const string W3C = "Y-m-d\TH:i:sP";
/* Methoden */
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Vordefinierte Konstanten

DateTimeInterface::ATOM
DATE_ATOM
Atom (Beispiel: 2005-08-15T15:52:01+00:00)
DateTimeInterface::COOKIE
DATE_COOKIE
HTTP Cookies (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTimeInterface::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 stattdessen DateTime::ATOM oder DATE_ATOM für ISO-8601 Kompatibilität.

DateTimeInterface::RFC822
DATE_RFC822
RFC 822 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC850
DATE_RFC850
RFC 850 (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTimeInterface::RFC1036
DATE_RFC1036
RFC 1036 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC1123
DATE_RFC1123
RFC 1123 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC7231
DATE_RFC7231
RFC 7231 (seit PHP 7.0.19 und 7.1.5) (Beispiel: Sat, 30 Apr 2016 17:52:13 GMT)
DateTimeInterface::RFC2822
DATE_RFC2822
RFC 2822 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC3339
DATE_RFC3339
Genau wie DATE_ATOM
DateTimeInterface::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
RFC 3339 EXTENDED Format (Beispiel: 2005-08-15T15:52:01.000+00:00)
DateTimeInterface::RSS
DATE_RSS
RSS (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::W3C
DATE_W3C
World Wide Web Consortium (Beispiel: 2005-08-15T15:52:01+00:00)

Changelog

Version Beschreibung
7.2.0 Die Klassenkonstanten von DateTime sind nun in DateTimeInterface definiert.

Inhaltsverzeichnis

add a note add a note

User Contributed Notes 1 note

up
6
divinity76 at gmail dot com
6 months ago
if you want to know what all the constants looks like, try

<?php
$constants
= (new ReflectionClass("DateTimeInterface"))->getConstants();
foreach(
$constants as $name => $format){
    echo
"{$name}: " . date($format, 0) . "\n";
}
?>

in php 8.0.3 it prints:

ATOM: 1970-01-01T01:00:00+01:00
COOKIE: Thursday, 01-Jan-1970 01:00:00 CET
ISO8601: 1970-01-01T01:00:00+0100
RFC822: Thu, 01 Jan 70 01:00:00 +0100
RFC850: Thursday, 01-Jan-70 01:00:00 CET
RFC1036: Thu, 01 Jan 70 01:00:00 +0100
RFC1123: Thu, 01 Jan 1970 01:00:00 +0100
RFC7231: Thu, 01 Jan 1970 01:00:00 GMT
RFC2822: Thu, 01 Jan 1970 01:00:00 +0100
RFC3339: 1970-01-01T01:00:00+01:00
RFC3339_EXTENDED: 1970-01-01T01:00:00.000+01:00
RSS: Thu, 01 Jan 1970 01:00:00 +0100
W3C: 1970-01-01T01:00:00+01:00
To Top