The DateTime class

Introduction

Representation of date and time.

This class behaves the same as DateTimeImmutable, except objects are modified itself when modification methods such as DateTime::modify are called.

Warning

Calling methods on objects of the class DateTime will change the information encapsulated in these objects, if you want to prevent that you will have to use clone operator to create a new object. Use DateTimeImmutable instead of DateTime to obtain this recommended behaviour by default.

Class synopsis

DateTime
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 DateTime add(DateInterval $interval)
public static DateTimefalse createFromFormat(string $format, string $datetime, DateTimeZonenull $timezone = null)
public static static createFromImmutable(DateTimeImmutable $object)
public static DateTime createFromInterface(DateTimeInterface $object)
public DateTimefalse modify(string $modifier)
public static DateTime __set_state(array $array)
public DateTime setDate(int $year, int $month, int $day)
public DateTime setISODate(int $year, int $week, int $dayOfWeek = 1)
public DateTime setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
)
public DateTime setTimestamp(int $timestamp)
public DateTime setTimezone(DateTimeZone $timezone)
public DateTime 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.2.0 The class constants of DateTime are now defined on DateTimeInterface.
7.1.0 The DateTime constructor now includes the current microseconds in the constructed value. Before this, it would always initialise the microseconds to 0.

Table of Contents