カレンダーおよびイベント関連DateTimeクラス
- DateTimeクラス〔日付と時刻を表す〕
- 定義済み定数
- DateTime::add ※PHP v5.3.0+〔年月日時分秒の値を DateTime オブジェクトに加える〕
- DateTime::__construct〔新しい DateTime オブジェクトを返す〕
- DateTime::createFromFormat ※PHP v5.3.0+〔指定した書式でフォーマットした新しい DateTime オブジェクトを返す〕
- DateTime::diff ※PHP v5.3.0+〔ふたつの DateTime オブジェクトの差を返す〕
- DateTime::format〔指定した書式でフォーマットした日付を返す〕
- DateTime::getLastErrors ※PHP v5.3.0+〔警告およびエラーを返す〕
- DateTime::getOffset〔夏時間のオフセットを返す〕
- DateTime::getTimestamp ※PHP v5.3.0+〔Unix タイムスタンプを取得する〕
- DateTime::getTimezone〔指定した DateTime に関連するタイムゾーンを返す〕
- DateTime::modify〔タイムスタンプを変更する〕
- DateTime::__set_state〔__set_state ハンドラ〕
- DateTime::setDate〔日付を設定する〕
- DateTime::setISODate〔ISO 日付を設定する〕
- DateTime::setTime〔時刻を設定する〕
- DateTime::setTimestamp ※PHP v5.3.0+〔Unix タイムスタンプを用いて日付と時刻を設定する〕
- DateTime::setTimezone〔DateTime オブジェクトのタイムゾーンを設定する〕
- DateTime::sub ※PHP v5.3.0+〔年月日時分秒の値を DateTime オブジェクトから引く〕
- DateTime::__wakeup〔__wakeup ハンドラ〕
DateTimeクラス
日付と時刻を表す
unknown
DateTime { /* 定数 */ const string DateTime::ATOM =Y-m-d\TH:i:sP; const string DateTime::COOKIE=l, d-M-y H:i:s T; const string DateTime::ISO8601=Y-m-d\TH:i:sO; const string DateTime::RFC822=D, d M y H:i:s O; const string DateTime::RFC850=l, d-M-y H:i:s T; const string DateTime::RFC1036=D, d M y H:i:s O; const string DateTime::RFC1123=D, d M Y H:i:s O; const string DateTime::RFC2822=D, d M Y H:i:s O; const string DateTime::RFC3339=Y-m-d\TH:i:sP; const string DateTime::RSS=D, d M Y H:i:s O; const string DateTime::W3C=Y-m-d\TH:i:sP; /* メソッド */ public DateTime add ( string $interval ) __construct ( [ string $time="now"[, DateTimeZone $タイムゾーン=NULL ]] ) public static DateTime createFromFormat ( string $フォーマット, string $time[, DateTimeZone $タイムゾーン ] ) public DateInterval diff ( DateTime $比較する日付[, bool $absolute ] ) public string format ( string $フォーマット ) public static array getLastErrors ( void ) public int getOffset ( void ) public int getTimestamp ( void ) public DateTimeZone getTimezone ( void ) public DateTime modify ( string $modify ) public static DateTime __set_state ( array $初期化配列 ) public DateTime setDate ( int $年, int $月, int $日 ) public DateTime setISODate ( int $年, int $週[, int $日 ] ) public DateTime setTime ( int $時, int $分[, int $秒 ] ) public DateTime setTimestamp ( int $Unixタイムスタンプ ) public DateTime setTimezone ( DateTimeZone $タイムゾーン ) public DateTime sub ( DateInterval $interval ) public DateTime __wakeup ( void ) }
定義済み定数
unknown
DateTimeノード型
- DateTime::ATOM
DATE_ATOM - Atom (例: 2005-08-15T15:52:01+00:00)
- HTTP Cookies (例: Monday, 15-Aug-05 15:52:01 UTC)
- DateTime::ISO8601
DATE_ISO8601 - ISO-8601 (例: 2005-08-15T15:52:01+0000)
- 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)
DateTime::add ※PHP v5.3.0+
年月日時分秒の値を DateTime オブジェクトに加える
unknown
DateTime date_add ( DateTime $object, DateInterval $interval )
指定したDateIntervalオブジェクトを、指定したDateTimeオブジェクトに加えます。 返り値として、変更したDateTimeオブジェクトを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
intervalには、加えたい量を指定します。 日付の場合は「P3D」、「P3M」、「P3Y」あるいは、それらを組み合わせた「P2M5D」(Y=年、M=月、D=日)のような形式を使用します(年月日順で指定する必要があり)。 時刻の場合は「T3H」、「T3M」、「T3S」あるいは、それらを組み合わせた「T5H20M」(H=時、M=分、S=秒)のような形式を使用します。 日付と時刻を指定する場合は、「P5D2M4YT5H20M」のようにします。 文字(PやT以外)の前の数字は、任意の量を指定することができます。
<?
date_default_timezone_set('Asia/Tokyo');
$date = new DateTime("18-July-2008 16:30:30");
echo $date->format("d-m-Y H:i:s").'<br>';
date_add($date, new DateInterval("P5D"));
echo '<br>'.$date->format("d-m-Y").' : 5 Days';
date_add($date, new DateInterval("P5M"));
echo '<br>'.$date->format("d-m-Y").' : 5 Months';
date_add($date, new DateInterval("P5Y"));
echo '<br>'.$date->format("d-m-Y").' : 5 Years';
date_add($date, new DateInterval("P5Y5M5D"));
echo '<br>'.$date->format("d-m-Y").' : 5 Days, 5 Months, 5 Years';
date_add($date, new DateInterval("P5YT5H"));
echo '<br>'.$date->format("d-m-Y H:i:s").' : 5 Years, 5 Hours';
?>
DateTime::__construct
新しい DateTime オブジェクトを返す
unknown
新しいDateTimeオブジェクトを返します。 エラーがあった場合は、Exceptionが発生します。
オプションの第1引数timeには、strtotime()が理解できる形式の文字列を指定します。 省略した場合はデフォルトの「now」が適用されます。
<?
date_default_timezone_set('Asia/Tokyo');
$datetime = new DateTime('2008-08-03 14:52:10');
echo $datetime->format(DATE_ATOM);
// 2008-08-03T14:52:10+09:00
?>
DateTime::createFromFormat ※PHP v5.3.0+
指定した書式でフォーマットした新しい DateTime オブジェクトを返す
unknown
フォーマットに指定した書式で、新しいDateTimeオブジェクトを返します。
第1引数フォーマットには、date()が理解できる書式を指定します。
第2引数timeには時刻を表す文字列を指定します。
DateTime::diff ※PHP v5.3.0+
ふたつの DateTime オブジェクトの差を返す
unknown
2つのDateTimeオブジェクトの差を返します。
オプションの第2引数absoluteには、差の絶対値を返すか否かを真偽値で指定します。 省略した場合はデフォルトのFALSE(差の絶対値を返さない)が適用されます。
DateTime::format
指定した書式でフォーマットした日付を返す
unknown
string date_format ( DateTime $object, string $フォーマット )
フォーマットに指定した書式で、日付を返します。 失敗した場合はFALSEを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
フォーマットには、date()が理解できる書式を指定します。
<?
date_default_timezone_set('Asia/Tokyo');
# 手続き型での日付と時刻の表示
$datetime = date_create('2008-08-03 14:52:10');
echo date_format($datetime, 'jS, F Y') . "\n";
echo date_format($datetime, DATE_ATOM);
/*
3rd, August 2008
2008-08-03T14:52:10+09:00
*/
# オブジェクト指向型での日付と時刻の表示
$datetime = new DateTime('2008-08-03 14:52:10');
echo $datetime->format('jS, F Y') . "\n";
echo $datetime->format(DATE_ATOM);
/*
3rd, August 2008
2008-08-03T14:52:10+09:00
*/
?>
DateTime::getLastErrors ※PHP v5.3.0+
警告およびエラーを返す
unknown
日付/時刻文字列のパース字に見つかった警告やエラーに関する情報を含む配列を返します。
<?
date_default_timezone_set('Asia/Tokyo');
$date = date_create('asdfasdf');
print_r(DateTime::getLastErrors());
/*
Array
(
[warning_count] => 1
[warnings] => Array
(
[6] => Double timezone specification
)
[error_count] => 1
[errors] => Array
(
[0] => The timezone could not be found in the database
)
)
*/
?>
DateTime::getOffset
夏時間のオフセットを返す
unknown
int date_offset_get ( DateTime $object )
夏時間のオフセット秒数を返します。 失敗した場合はFALSEを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
<?
date_default_timezone_set('Europe/London');
$winter = new DateTime('2008-12-25 14:25:41');
$summer = new DateTime('2008-07-14 14:25:41');
echo $winter->getOffset(); // Winter offset: 0
echo $summer->getOffset(); // Summer offset: 3600 = 1 hour
?>
DateTime::getTimezone
指定した DateTime に関連するタイムゾーンを返す
unknown
DateTimeZone date_timezone_get ( DateTime $object )
指定したDateTimeに関連するタイムゾーンを返します。 失敗した場合はFALSEを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
<?
date_default_timezone_set('Europe/London');
# DateTimeZone オブジェクトの設定と取得
$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->getTimezone()->getName() . "\n";
/*
Europe/London
*/
$datetime = new DateTime('2008-08-03 12:35:23');
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->getTimezone()->getName();
/*
America/Los_Angeles
*/
?>
DateTime::modify
タイムスタンプを変更する
unknown
DateTime date_modify ( DateTime $object, string $modify )
strtotime()形式で加算または減算することによって、DateTimeオブジェクトのタイムスタンプを変更して返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
modifyには、strtotime()が理解できる書式の文字列を指定します。
PHP v5.3.0から返り値がNULLからDateTimeに変更されました。
<?php
date_default_timezone_set('Asia/Tokyo');
$date = new DateTime("2006-12-12");
$date->modify("+1 day");
echo $date->format("Y-m-d"); // 2006-12-13
?>
DateTime::__set_state
__set_state ハンドラ
unknown
__set_stateを処理し、新しいDateTimeオブジェクトのインスタンスを返します。
DateTime::setDate
日付を設定する
unknown
DateTime date_date_set ( DateTime $object, int $年, int $月, int $日 )
DateTimeオブジェクトの現在の日付をリセットし、別の日付にして返します
objectには、date_create()が返すDateTimeオブジェクトを指定します。
年には、その日付の年を指定します。
月には、その日付の月を指定します。
日には、その日付の日を指定します。
PHP v5.3.0から返り値がNULLからDateTimeに変更されました。
<?
date_default_timezone_set('Asia/Tokyo');
# 手続き型の使用例
$datetime = date_create('2008-08-03 14:52:10');
date_date_set($datetime, 2008, 10, 12);
var_dump( date_format($datetime, DATE_RFC2822)); // Sun, 12 Oct 2008 14:52:10 +0900
# オブジェクト指向の使用例
$datetime = new DateTime('2008-08-03 14:52:10');
$datetime->setDate(2008, 10, 12);
echo $datetime->format(DATE_RFC2822); // Sun, 12 Oct 2008 14:52:10 +0900
?>
DateTime::setISODate
ISO 日付を設定する
unknown
DateTime date_isodate_set ( DateTime $object, int $週[, int $日 ] )
ISO 8601標準形式(週と日のオフセット)で日付を設定して返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
年には、その日付の年を指定します。
週には、その日付の週を指定します。
日には、週の最初の日からのオフセットを指定します。
PHP v5.3.0から返り値がNULLからDateTimeに変更されました。
<?
date_default_timezone_set('Europe/London');
###### 週番号と日オフセットからの日付の取得
$datetime = new DateTime();
// Offset from start of week 2 (7) = 5
$datetime->setISODate(2008, 2, 5); // Day 5 of week 2 of 2008 is the 11th of January.
// Offset from start of week 2 (7) = 10
$datetime->setISODate(2008, 2, 10); // Day 10 of week 2 of 2008 is the 16th of January.
###### ある週が属する月の取得
$datetime = date_create();
date_isodate_set($datetime, 2008, 6); // Week 6 of 2008 is in February.
?>
DateTime::setTime
時刻を設定する
unknown
DateTime date_time_set ( DateTime $object, int $時, int $分[, int $秒 ] )
DateTimeオブジェクトの現在時刻を別の時刻にリセットして返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
時には、その時刻の時を指定します。
分には、その時刻の分を指定します。
秒には、その時刻の秒を指定します。
PHP v5.3.0から返り値がNULLからDateTimeに変更されました。
<?
date_default_timezone_set('Asia/Tokyo');
###### DateTime オブジェクトの時刻の変更
$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";
// 2008-08-03 12:35:23
$datetime->setTime(14, 55, 24);
echo $datetime->format('Y-m-d H:i:s') . "\n";
// 2008-08-03 14:55:24
// Warning: Does not increment the hour!
// This is because the hour has been set (14) - see date_modify()
$datetime->setTime($datetime->format('H'), $datetime->format('n') + 6);
echo $datetime->format('Y-m-d H:i:s') . "\n";
// 2008-08-03 14:14:00
// *Does* increment the day, because the day has not been set
$datetime->setTime($datetime->format('H') + 12, $datetime->format('n'));
echo $datetime->format('Y-m-d H:i:s') . "\n";
// 2008-08-04 02:08:00
?>
DateTime::setTimezone
DateTime オブジェクトのタイムゾーンを設定する
unknown
DateTime date_timezone_set ( DateTime $object, DateTimeZone $タイムゾーン )
DateTimeオブジェクトwのタイムゾーンを設定します。 返り値として変更後のDateTimeオブジェクトを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
PHP v5.3.0から返り値がNULLからDateTimeに変更されました。
<?
date_default_timezone_set('Europe/London');
# DateTimeZone オブジェクトの設定と取得
$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->getTimezone()->getName() . "\n";
// Europe/London
$datetime = new DateTime('2008-08-03 12:35:23');
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->getTimezone()->getName();
// America/Los_Angeles
?>
DateTime::sub ※PHP v5.3.0+
年月日時分秒の値を DateTime オブジェクトから引く
unknown
DateTime date_sub ( DateTime $object, DateInterval $interval )
intervalに指定したぱらIntervalオブジェクトを、objectに指定したDateTimeオブジェクトから引きます。 返り値として、変更したDateTimeオブジェクトを返します。
objectには、date_create()が返すDateTimeオブジェクトを指定します。
intervalには、引きたい量を指定します。 日付の場合は「P3D」、「P3M」、「P3Y」あるいは、それらを組み合わせた「P2M5D」(Y=年、M=月、D=日)のような形式を使用します(年月日順で指定する必要があり)。 時刻の場合は「T3H」、「T3M」、「T3S」あるいは、それらを組み合わせた「T5H20M」(H=時、M=分、S=秒)のような形式を使用します。 日付と時刻を指定する場合は、「P5D2M4YT5H20M」のようにします。 文字(PやT以外)の前の数字は、任意の量を指定することができます。
<?
date_default_timezone_set('Europe/London');
$date = new DateTime("18-July-2008 16:30:30");
echo $date->format("d-m-Y H:i:s").'<br>'; // 18-07-2008 16:30:30
date_sub($date, new DateInterval("P5D"));
echo '<br>'.$date->format("d-m-Y").' : 5 Days';
date_sub($date, new DateInterval("P5M"));
echo '<br>'.$date->format("d-m-Y").' : 5 Months';
date_sub($date, new DateInterval("P5Y"));
echo '<br>'.$date->format("d-m-Y").' : 5 Years';
date_sub($date, new DateInterval("P5Y5M5D"));
echo '<br>'.$date->format("d-m-Y").' : 5 Days, 5 Months, 5 Years';
date_sub($date, new DateInterval("P5YT5H"));
echo '<br>'.$date->format("d-m-Y H:i:s").' : 5 Years, 5 Hours';
?>
DateTime::__wakeup
__wakeup ハンドラ
unknown
__wakeupを処理し、DateTime オブジェクトを初期化します。