DateTime クラス

はじめに

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

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

警告

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

クラス概要

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", 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()

変更履歴

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

目次