update page now
Longhorn PHP 2026 - Call For Papers

The DateTime class

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

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

class 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 function __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public function add(DateInterval $interval): DateTime
public static function createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false
public static function createFromImmutable(DateTimeImmutable $object): static
public static function createFromInterface(DateTimeInterface $object): DateTime
public function modify(string $modifier): DateTime
public static function __set_state(array $array): DateTime
public function setDate(int $year, int $month, int $day): DateTime
public function setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime
public function setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTime
public function setTimestamp(int $timestamp): DateTime
public function setTimezone(DateTimeZone $timezone): DateTime
public function sub(DateInterval $interval): DateTime
public function diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public function format(string $format): string
public function getOffset(): int
public function getTimestamp(): int
public function getTimezone(): DateTimeZone|false
public function __serialize(): array
public function __unserialize(array $data): void
#[\Deprecated]
public function __wakeup(): void
}

Changelog

Version Description
8.4.0 The class constants are now typed.
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

add a note

User Contributed Notes

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