PHP Conference Fukuoka 2025

The DateTimeImmutable class

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

简介

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 DateTimeImmutable implements DateTimeInterface {
/* 继承的常量 */
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";
/* 方法 */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
#[\NoDiscard]
public add(DateInterval $interval): DateTimeImmutable
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false
public static createFromMutable(DateTime $object): static
public static getLastErrors(): array|false
#[\NoDiscard]
public modify(string $modifier): DateTimeImmutable
public static __set_state(array $array): DateTimeImmutable
#[\NoDiscard]
public setDate(int $year, int $month, int $day): DateTimeImmutable
#[\NoDiscard]
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
#[\NoDiscard]
public setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTimeImmutable
#[\NoDiscard]
public setTimestamp(int $timestamp): DateTimeImmutable
#[\NoDiscard]
public setTimezone(DateTimeZone $timezone): DateTimeImmutable
#[\NoDiscard]
public sub(DateInterval $interval): DateTimeImmutable
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public __serialize(): array
public __unserialize(array $data): void
}

更新日志

版本 说明
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.

目录

添加备注

用户贡献的备注

此页面尚无用户贡献的备注。
To Top