PHP 8.3.0 RC 6 available for testing

DateTime 类

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

简介

日期和时间表示。

此类与 DateTimeImmutable 行为相同。区别就是调用有修改行为的方法(比如 DateTime::modify())时,会修改对象本身。

警告

DateTime 类的对象上调用方法会改变对象中封装的信息,如果想要避免这种情况,就得使用 clone 操作符创建新的对象。推荐使用 DateTimeImmutable 代替 DateTime 来获得这个默认行为。

类摘要

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

更新日志

版本 说明
7.2.0 DateTime 的类常量现在定义在 DateTimeInterface 上。
7.1.0 现在 DateTime 构造器在构造值中包含了当前微秒。在此之前,微秒会一直初始化为 0

目录

add a note

User Contributed Notes 1 note

up
-36
szwaymi
10 months ago
A simple example to create the date time object by now with time zone

$Now = new DateTime('now', new DateTimeZone('Asia/Taipei'));

A simple example to print data time with format

echo $Now->format('Y-m-d H:i:s');
To Top