The DateTimeImmutable class

Introduction

Representation of date and time.

This class behaves the same as DateTime except new objects are returned when modification methods such as DateTime::modify are called.

Class synopsis

DateTimeImmutable
implements DateTimeInterface
/* Inherited constants */
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";
/* Methods */
public __construct(string $datetime = "now", DateTimeZonenull $timezone = null)
public DateTimeImmutable add(DateInterval $interval)
public static DateTimeImmutablefalse createFromFormat(string $format, string $datetime, DateTimeZonenull $timezone = null)
public static DateTimeImmutable createFromInterface(DateTimeInterface $object)
public static static createFromMutable(DateTime $object)
public static arrayfalse getLastErrors()
public DateTimeImmutable modify(string $modifier)
public static DateTimeImmutable __set_state(array $array)
public DateTimeImmutable setDate(int $year, int $month, int $day)
public DateTimeImmutable setISODate(int $year, int $week, int $dayOfWeek = 1)
public DateTimeImmutable setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
)
public DateTimeImmutable setTimestamp(int $timestamp)
public DateTimeImmutable setTimezone(DateTimeZone $timezone)
public DateTimeImmutable sub(DateInterval $interval)
public DateInterval diff(DateTimeInterface $targetObject, bool $absolute = false)
public string format(string $format)
public int getOffset()
public int getTimestamp()
public DateTimeZonefalse getTimezone()
public void __wakeup()

Changelog

Version Description
8.4.0 The class constants are now typed.
7.1.0 The DateTimeImmutable constructor now includes the current microseconds in the constructed value. Before this, it would always initialise the microseconds to 0.

Table of Contents