DateTime クラス

(PHP 5 >= 5.2.0, PHP 7)

はじめに

日付と時刻をあらわします。

クラス概要

DateTime implements DateTimeInterface {
/* 定数 */
const string ATOM = "Y-m-d\TH:i:sP" ;
const string COOKIE = "l, d-M-Y H:i:s T" ;
const string ISO8601 = "Y-m-d\TH:i:sO" ;
const string RFC822 = "D, d M y H:i:s O" ;
const string RFC850 = "l, d-M-y H:i:s T" ;
const string RFC1036 = "D, d M y H:i:s O" ;
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
const string RFC3339 = "Y-m-d\TH:i:sP" ;
const string RSS = "D, d M Y H:i:s O" ;
const string W3C = "Y-m-d\TH:i:sP" ;
/* メソッド */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public add ( DateInterval $interval ) : DateTime
public static createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] ) : DateTime
public static createFromImmutable ( DateTimeImmutable $datetime ) : DateTime
public static getLastErrors ( void ) : array
public modify ( string $modify ) : DateTime
public static __set_state ( array $array ) : DateTime
public setDate ( int $year , int $month , int $day ) : DateTime
public setISODate ( int $year , int $week [, int $day = 1 ] ) : DateTime
public setTime ( int $hour , int $minute [, int $second = 0 ] ) : DateTime
public setTimestamp ( int $unixtimestamp ) : DateTime
public setTimezone ( DateTimeZone $timezone ) : DateTime
public sub ( DateInterval $interval ) : DateTime
public diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] ) : DateInterval
public format ( string $format ) : string
public getOffset ( void ) : int
public getTimestamp ( void ) : int
public getTimezone ( void ) : DateTimeZone
public __wakeup ( void )
}

定義済み定数

DateTime::ATOM
DATE_ATOM
Atom (例: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (例: Monday, 15-Aug-2005 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (例: 2005-08-15T15:52:01+0000)

注意: この書式は ISO-8601 との互換性がありませんが、敢えてそのまま残しています。 下位互換性を保つためです。ISO-8601 互換の書式を使いたい場合は、 DateTime::ATOM あるいは DATE_ATOM を使いましょう。

DateTime::RFC822
DATE_RFC822
RFC 822 (例: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (例: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (例: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (例: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (例: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
DATE_ATOM と同じ (PHP 5.1.3 以降)
DateTime::RSS
DATE_RSS
RSS (例: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (例: 2005-08-15T15:52:01+00:00)

変更履歴

バージョン 説明
5.5.0 DateTimeInterface を実装するようになりました。
5.4.24 COOKIE 定数が、RFC 1036 に準拠するように (年を4桁で表すように) なりました。 以前のバージョンでは、RFC 850 に従って年を2桁で表していました。
5.2.2 DateTime オブジェクトどうしの 比較演算子 による比較が、期待通りに動作するようになりました。 これより前のバージョンでは、すべての DateTime オブジェクトは (== による比較で) 等しいと見なされていました。

目次