# La classe DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7)

## Introduction

DateTimeInterface signifie que DateTime et DateTimeImmutable peuvent être indiqués pour le type. Il n'est pas possible d'implémenter cette interface avec des classes userland.

## Synopsis de la classe

DateTimeInterface {
/* Constantes */
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 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" ;
/* Méthodes */
public diff ( DateTimeInterface `$datetime2` [, bool `$absolute` = `FALSE` ] ) : DateInterval
public format ( string `$format` ) : string
public getOffset ( void ) : int
public getTimestamp ( void ) : int
public getTimezone ( void ) : DateTimeZone
public __wakeup ( void )
}

## Constantes pré-définies

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

  > Note: Ce format n'est pas compatible avec ISO-8601, mais reste ainsi pour des raisons de compatibilité ascendante. Utilisez `DateTime::ATOM` ou `DATE_ATOM` pour assurer la compatibilité avec ISO-8601.

`DateTimeInterface::RFC822`
`DATE_RFC822`
  RFC 822 (exemple: Mon, 15 Aug 05 15:52:01 +0000)
`DateTimeInterface::RFC850`
`DATE_RFC850`
  RFC 850 (exemple: Monday, 15-Aug-05 15:52:01 UTC)
`DateTimeInterface::RFC1036`
`DATE_RFC1036`
  RFC 1036 (exemple: Mon, 15 Aug 05 15:52:01 +0000)
`DateTimeInterface::RFC1123`
`DATE_RFC1123`
  RFC 1123 (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
`DateTimeInterface::RFC2822`
`DATE_RFC2822`
  RFC 2822 (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
`DateTimeInterface::RFC3339`
`DATE_RFC3339`
  Comme `DATE_ATOM` (depuis PHP 5.1.3)
`DateTimeInterface::RFC3339_EXTENDED`
`DATE_RFC3339_EXTENDED`
  RFC 3339 EXTENDED format (depuis PHP 7.0.0) (example: 2005-08-15T15:52:01.000+00:00)
`DateTimeInterface::RSS`
`DATE_RSS`
  RSS (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
`DateTimeInterface::W3C`
`DATE_W3C`
  World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)

## Historique

Version | Description
--- | ---
7.2.0 | Les constantes de classe de DateTime sont maintenant définies sur DateTimeInterface.
5.5.8 | Essayer d'implementer DateTimeInterface déclenche une erreur fatale maintenant. Auparavant, l'implémentation de l'interface ne générait pas d'erreur, mais le comportement était erroné.

## Sommaire

- DateTime::diff — Retourne la différence entre deux objets DateTime
- DateTime::format — Retourne une date formatée suivant le format fourni
- DateTime::getOffset — Retourne le décalage horaire
- DateTime::getTimestamp — Récupère le timestamp Unix
- DateTime::getTimezone — Retourne le fuseau horaire relatif au DateTime fourni
- DateTime::__wakeup — Le gestionnaire __wakeup