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 DateTimeImmutablefalse 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
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