PHP Conference Fukuoka 2025

La classe DateTimeImmutable

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

Introduction

Représentation d'une date et heure.

Cette classe se comporte de la manière identique à DateTime à l'exception que de nouveaux objets sont retournés quand des méthodes de modification telle que DateTime::modify() sont appelées.

Synopsis de la classe

class DateTimeImmutable implements DateTimeInterface {
/* Constantes héritées */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Méthodes */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
#[\NoDiscard]
public add(DateInterval $interval): DateTimeImmutable
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false
public static createFromMutable(DateTime $object): static
public static getLastErrors(): array|false
#[\NoDiscard]
public modify(string $modifier): DateTimeImmutable
public static __set_state(array $array): DateTimeImmutable
#[\NoDiscard]
public setDate(int $year, int $month, int $day): DateTimeImmutable
#[\NoDiscard]
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
#[\NoDiscard]
public setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTimeImmutable
#[\NoDiscard]
public setTimestamp(int $timestamp): DateTimeImmutable
#[\NoDiscard]
public setTimezone(DateTimeZone $timezone): DateTimeImmutable
#[\NoDiscard]
public sub(DateInterval $interval): DateTimeImmutable
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public __serialize(): array
public __unserialize(array $data): void
public __wakeup(): void
}

Historique

Version Description
8.4.0 Les constantes de classe sont maintenant typées.
7.1.0 Le constructeur DateTimeImmutable inclut désormais les microsecondes actuelles dans la valeur construite. Avant cela, il initialisait toujours les microsecondes à 0.

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top