International PHP Conference Munich 2021

La classe DateTimeImmutable

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


Représentation d'une date et heure.

Synopsis de la classe

DateTimeImmutable implements DateTimeInterface {
/* Constants héritées */
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \G\M\T" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;
/* Méthodes */
public __construct(string $datetime = "now", DateTimeZone|null $timezone = null)
public static createFromFormat(string $format, string $datetime, DateTimeZone|null $timezone = null): DateTimeImmutable|false
public static getLastErrors(): array|false
public modify(string $modifier): DateTimeImmutable|false
public static __set_state(array $array): DateTimeImmutable
public setDate(int $year, int $month, int $day): DateTimeImmutable
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
public setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTimeImmutable
public setTimestamp(int $timestamp): DateTimeImmutable
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


add a note add a note

User Contributed Notes 3 notes

taoufik dot oussama at gmail dot com
3 years ago
Here's a simple example on how this class works :

    // Create a DateTimeImmutable Object
    $date = new DateTimeImmutable('2000-01-01');
    // "Change" that object and assign it's value to a new variable
    $date2 = $date->add(new DateInterval('P6M5DT24H'));
    // Check out the content of the two variables
    echo $date->format('Y-m-d') . "\n";
    // 2000-01-01
    echo $date2->format('Y-m-d') . "\n";
    // 2000-07-07
katsarov at gmail dot com
2 years ago
Note: If you are trying to get 02.29 for non leap year it will return 03.01
new DateTimeImmutable('2017-02-29') // 2017-03-01
soullinker0 googlemail
2 years ago
class MyDateTime extends DateTimeImmutable
    public function addDay(int $amount): MyDateTime
        return $this->add(new DateInterval("P" . $amount . "D"));

addDay will return DateTimeImmutable not MyDateTime. It looks like there is no "return static;"
i wish i would be
To Top