DateTime クラス

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

はじめに

日付と時刻を表現するクラスです。

このクラスは、 DateTimeImmutable と同じ振る舞いをします。 但し、DateTime::modify() のような、 オブジェクトそのものを変更するメソッドが呼び出された時を除きます。

警告

DateTime クラスのメソッドをコールすると、 そのインスタンスにカプセル化された情報が変更されます。 そうした変更を防ぎたい場合には、新しいオブジェクトを作るために clone 演算子を使わなければいけません。 オブジェクトの変更を防ぐ、望ましい挙動をデフォルトで実現するには、 DateTime ではなく、 DateTimeImmutable を使います。

クラス概要

classDateTimeimplementsDateTimeInterface {
publicconststringDateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
publicconststringDateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
publicconststringDateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
publicconststringDateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
publicconststringDateTimeInterface::RFC822 = "D, d M y H:i:s O";
publicconststringDateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
publicconststringDateTimeInterface::RFC1036 = "D, d M y H:i:s O";
publicconststringDateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
publicconststringDateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
publicconststringDateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
publicconststringDateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
publicconststringDateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
publicconststringDateTimeInterface::RSS = "D, d M Y H:i:s O";
publicconststringDateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
public__construct(string$datetime = "now", ?DateTimeZone$timezone = null)
publicadd(DateInterval$interval): DateTime
publicstaticcreateFromFormat(string$format, string$datetime, ?DateTimeZone$timezone = null): DateTime|false
publicstaticcreateFromImmutable(DateTimeImmutable$object): static
publicmodify(string$modifier): DateTime|false
publicstatic__set_state(array$array): DateTime
publicsetDate(int$year, int$month, int$day): DateTime
publicsetISODate(int$year, int$week, int$dayOfWeek = 1): DateTime
publicsetTime(
    int$hour,
    int$minute,
    int$second = 0,
    int$microsecond = 0
): DateTime
publicsetTimestamp(int$timestamp): DateTime
publicsub(DateInterval$interval): DateTime
publicdiff(DateTimeInterface$targetObject, bool$absolute = false): DateInterval
publicformat(string$format): string
publicgetOffset(): int
publicgetTimestamp(): int
public__wakeup(): void
}

変更履歴

バージョン説明
7.2.0DateTime クラスの定数は、 DateTimeInterface で定義されるようになりました。
7.1.0DateTime のコンストラクタで構築される値に、 現在時刻のマイクロ秒が含まれるようになりました。 これより前のバージョンでは、このマイクロ秒の情報は常に 0 で初期化されていました。

目次

To Top