Search
  1. 定義済みの定数
  2. 日付のフォーマット形式
  3. checkdate〔有効な日付かどうか調べる〕
  4. date〔ローカル現在日時をフォーマットして取得〕
  5. date_create PHP5~〔新しいDateTimeオブジェクトを返す〕
  6. date_default_timezone_get PHP5~〔スクリプト中の日付・時間関数で使用されるデフォルトタイムゾーンを取得する〕
  7. date_default_timezone_set PHP5~〔スクリプト中の日付・時間関数で使用されるデフォルトタイムゾーンを設定する〕
  8. date_parse PHP5~〔指定した日付の詳細情報を連想配列で返す〕
  9. date_sun_info PHP5~〔日の出・日の入り時刻と薄明かりの開始・終了時刻の情報を含む配列を返す〕
  10. date_sunrise PHP5~〔指定した日付と場所の日の出時刻を返す〕
  11. date_sunset PHP5~〔指定した日付と場所の日の入り時刻を返す〕
  12. getdate〔日付/時刻情報を連想配列で取得〕
  13. gettimeofday〔現在時間を連想配列で取得する〕
  14. gmdate〔現在のグリニッジ標準時(GMT)をフォーマットして取得する〕
  15. gmmktime〔現在のグリニッジ標準時(GMT)からUnixタイムスタンプを取得する〕
  16. gmstrftime〔ロケールの設定に基づいてGMT/UTC 時刻/日付をフォーマットする〕
  17. idate〔ローカルな時刻/日付を整数として整形する〕
  18. localtime〔ローカルタイムを取得する〕
  19. microtime〔現在のUnixタイムスタンプをマイクロ秒まで返す〕
  20. mktime〔日付を UNIX時間として取得する〕
  21. strftime〔ロケールの設定に基づいてローカルな日付・時間をフォーマットする〕
  22. strtotime〔英文形式の日付をUNIX時間に変換する〕
  23. time〔現在のUNIX時間を取得する〕
  24. timezone_open PHP5~〔新しい DateTimeZone オブジェクトを返す〕
  25. timezone_name_from_addr PHP5~〔略称からタイムゾーン名を返す〕
  26. timezone_version_get PHP5~〔timezonedbの現在のバージョンを取得〕

定義済みの定数

unknown

DATE_定数は、PHP v5.1.1からで定義されており、標準的な日付の書式を表します。 日付フォーマット関数(date()など)で使用します。

下記の定数は、PHP v5.1.2から存在し、date_sunrise()関数およびdate_sunset()関数が返す結果の書式を指定するのに使用します。

定数説明
SUNFUNCS_RET_STRINGinteger時:分
結果を文字列で返します。
08:02
SUNFUNCS_RET_DOUBLEinteger時刻を表す浮動小数点値
結果を浮動小数点で返します。
8.75
16.78243132
SUNFUNCS_RET_TIMESTAMPintegerタイムスタンプ
結果を整数(タイムスタンプ)で返します。
1095034606

日付のフォーマット形式

unknown

フォーマットを定義する引数
F意味F意味
aamまたはpmL閏年では1、それ以外は0を返す
AAMまたはPMn先頭に0をつけない(0~12)の月
d2桁の日付m2桁の月(01~12)
D3文字の曜日(Sun~Sat)M3文字の月(Jan~Dec)
Fフルスペルの英字で月s2桁の秒数(00~59)
h12時間単位(00~12)の時間S英文の序数を表す接頭語(th~nd)
H24時間単位(00~23)の時間t指定した月の日数(28~31)
g先頭に0を付けない12時間単位(0~12)の時間UUNIX時間(1970年1月1日からの秒数)
G先頭に0を付けない24時間単位(0~23)の時間w数値で示す曜日(0~6)
i2桁の分(00~59)y西暦下2桁
j先頭に0を付けない(0~31)の日Y西暦4桁
lフルスペルの英字の曜日zその年の1月1日から通算日を定義
Zタイムゾーンのオフセット秒(-43200~43200)

checkdate
有効な日付かどうか調べる

unknown

bool checkdate ( int $月, int $日, int $年 )

指定した日付(年月日)が有効なら TRUE、そうでないなら FALSE を返します。 引数に指定する日付(年月日)は、「月、日、年」という順番になるので注意して下さい。

有効な日付かどうかの判断基準

  • 「年」が1~32767の間であること
  • 「月」が1~12の間であること
  • 「日」が指定された「月」の日数以内に収まること(閏年も考慮の対象)
<?
var_dump(checkdate(1302005)); // bool(true)
var_dump(checkdate(2292005)); // bool(false) 

if(checkdate(1302005)) echo "有効な日付です";
else echo "無効な日付です";
//有効な日付です
?>

date
ローカル現在日時をフォーマットして取得

unknown

string date ( string $フォーマット[, int $タイムスタンプ] )

タイムスタンプフォーマットで指定した日付を表す文字列にして返します。 タイムスタンプが数値でない場合はFALSEを返し、エラー(E_WARNING)が発生します。

オプションの第2引数フォーマットには、日付のフォーマット形式を指定します。 フォーマットに認識されない文字がある場合は、そのまま表示されます。 Z形式は、gmdate()を使用した場合、常に0を返します。

オプションの第3引数タイムスタンプには、UNIX時間(整数)を指定します。 省略した場合は、現在のローカル時刻(=time()関数の返り値)が使用されます(デフォルト)。

<?
$today date("Y年m月d日 H:i:s");
echo "現在日時は、" $today "です";
//現在日時は、2005年02月13日 22:52:54です

$birthday date("Y年m月d日"mktime(0,0,0,12,1,1980));
echo "誕生日は、" $birthday "です";
//誕生日は、1980年12月01日です
?>

date_create PHP5~
新しいDateTimeオブジェクトを返す

unknown

DateTime date_create ( [ string $time=”now”[, DateTimeZone $タイムゾーン=NULL]] )

新しいDateTimeオブジェクトを返します。 成功した場合にDateTimeオブジェクト、失敗した場合にFALSEを返します。

オプションの第1引数timeには、strtotime()が理解する日付を表す文字列を指定します。 デフォルトは「now」(現在時刻)です。

オプションの第2引数タイムゾーンには、その時間のタイムゾーンを指定します。

<?
$now=date_create();
echo date_format($nowDATE_ATOM);
// 2009-05-06T12:25:21+09:00

$datetime=date_create('2008-08-03 14:52:10');
echo date_format($datetimeDATE_ATOM);
// 2008-08-03T14:52:10+09:00
?>

date_default_timezone_get PHP5~
スクリプト中の日付・時間関数で使用されるデフォルトタイムゾーンを取得する

unknown

string date_default_timezone_get ( void )

スクリプト中の日付・時刻関数で使用されるデフォルトのタイムゾーンを、下記の優先順位で取得し、文字列として返します。

  • date_default_timezone_set()を使用して設定したタイムゾーンを読み込む(設定されている場合のみ)
  • TZ環境変数を読み込む(空白でない場合のみ)
  • date.timezone iniオプションを読み込む(設定されている場合のみ)
  • ホストOSに問合せる(OSがそれに対応していて許可されている場合のみ)

これらがすべて失敗した場合は、デフォルトのタイムゾーンであるUTCを返します。

<?
### デフォルトのタイムゾーンの取得
date_default_timezone_set('Asia/Tokyo');

if(date_default_timezone_get()){
    echo 'date_default_timezone_set: '.date_default_timezone_get().'<br>';
}
// date_default_timezone_set: Asia/Tokyo
if(ini_get('date.timezone')){
    echo 'date.timezone: '.ini_get('date.timezone');
}
// date.timezone: Asia/Tokyo

### タイムゾーンの短縮名の取得
echo date_default_timezone_get().'=>'.date('e').'=>'.date('T');
// Asia/Tokyo=>Asia/Tokyo=>JST
?>

date_default_timezone_set PHP5~
スクリプト中の日付・時間関数で使用されるデフォルトタイムゾーンを設定する

unknown

bool date_default_timezone_set ( string $タイムゾーンID )

スクリプト中の日付・時刻関数で使用されるデフォルトのタイムゾーンを設定します。 指定したタイムゾーンIDが無効な場合にFALSE、それ以外の場合にTRUEを返します。

第1引数タイムゾーンIDには、UTCや「Asia/Tokyo」、「Europe/Paris」などのタイムゾーンIDを指定します。 有効なタイムゾーンIDの一覧は、サポートされるタイムゾーンのリストを参照してください。

PHP v5.1.0以降、タイムゾーンIDを正しく設定せずに日付・時刻関数をコールすると E_NOTICEが発生するようになりました。 またシステムの設定やTZ環境変数を使用するとE_STRICTが発生するようになりましたので注意してください。

<?
# デフォルトのタイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');

# デフォルトのタイムゾーンを取得
$script_tz date_default_timezone_get();

# スクリプト中のタイムゾーンとini設定のタイムゾーンを比較
if(strcmp($script_tzini_get('date.timezone'))){
    echo 'スクリプトのタイムゾーンはini設定のタイムゾーンと異なります';
}else{
    echo 'スクリプトのタイムゾーンはini設定のタイムゾーンと同じです';
}
?>

date_parse PHP5~
指定した日付の詳細情報を連想配列で返す

unknown

array date_parse ( string $日付 )

指定した日付の詳細情報を連想配列で返します。

第1引数日付には、strtotime()が理解する日付を表す文字列を指定します。

<?
# 日付の詳細情報を取得
echo "<pre>".print_r(date_parse("2009-04-30 23:50:30.5"), true)."</pre>";
?>

date_sun_info PHP5~
日の出・日の入り時刻と薄明かりの開始・終了時刻の情報を含む配列を返す

unknown

array date_sun_info ( int $タイムスタンプ, float $経度を表す度数, float $緯度を表す度数 )

日の出・日の入り時刻と薄明かりの開始・終了時刻の情報を含む配列を返します。 失敗した場合はFALSEを返します。

<?
# 東京
$sun_info date_sun_info(strtotime("2009-04-30"), 35.68949139.69171);
foreach ($sun_info as $key => $val) {
    echo "$key: ".date("H:i:s"$val)."\n";
}
/*
sunrise: 04:50:13
sunset: 18:26:41
transit: 11:38:27
civil_twilight_begin: 04:23:02
civil_twilight_end: 18:53:53
nautical_twilight_begin: 03:50:14
nautical_twilight_end: 19:26:41
astronomical_twilight_begin: 03:15:38
astronomical_twilight_end: 20:01:17
*/
?>

date_sunrise PHP5~
指定した日付と場所の日の出時刻を返す

unknown

mixed date_sunrise ( int $タイムスタンプ[, int $フォーマット[, float $経度[, float $緯度[, float $天頂[, float $gmt_offset]]]]] )

タイムスタンプで指定した日付と、指定した場所の日の出時刻を指定したフォーマットで返します。 失敗した場合はFALSEを返します。

第1引数タイムスタンプには、日の出時刻を取得する日のタイムスタンプを指定します。

オプションの第2引数フォーマットには、定数を指定します。 デフォルトは、SUNFUNCS_RET_STRING(時:分)です。

オプションの第3引数経度のデフォルトは北緯ni_get("date.default_latitude")です。 南緯は負の値で現します。

オプションの第4引数緯度のデフォルトは東経ni_get("date.default_longitude")です。 西経は負の値で現します。

オプションの第5引数天頂のデフォルトは、date.sunrise_zenithです。

オプションの第6引数gmt_offsetには、GMTからの時間差を時間単位で指定します。 デフォルトは0です。

PHP v5.1.0以降、タイムゾーンIDを正しく設定せずに日付・時刻関数をコールすると E_NOTICEが発生するようになりました。 またシステムの設定やTZ環境変数を使用するとE_STRICTが発生するようになりましたので注意してください。

<?
### 東京の日の出時刻を計算する
/*
緯度: 北緯 35.68949
経度: 西経 139.69171
天頂 ~= 90
時差: +9 GMT
*/

echo date("D M d Y"). ', sunrise time : '.date_sunrise(time(), SUNFUNCS_RET_STRING35.68949139.69171909);
// Wed May 06 2009, sunrise time : 04:47
?>

date_sunset PHP5~
指定した日付と場所の日の入り時刻を返す

unknown

mixed date_sunset ( int $タイムスタンプ[, int $フォーマット[, float $経度[, float $緯度[, float $天頂[, float $gmt_offset]]]]] )

タイムスタンプで指定した日付と、指定した場所の日の入り時刻を指定したフォーマットで返します。 失敗した場合はFALSEを返します。

第1引数タイムスタンプには、日の入り時刻を取得する日のタイムスタンプを指定します。

オプションの第2引数フォーマットには、定数を指定します。 デフォツトは、SUNFUNCS_RET_STRING(時:分)です。

オプションの第3引数経度のデフォルトは北緯ni_get("date.default_latitude")です。 南緯は負の値で現します。

オプションの第4引数緯度のデフォルトは東経ni_get("date.default_longitude")です。 西経は負の値で現します。

オプションの第5引数天頂のデフォルトは、date.sunrise_zenithです。

オプションの第6引数gmt_offsetには、GMTからの時間差を時間単位で指定します。 デフォルトは0です。

PHP v5.1.0以降、タイムゾーンIDを正しく設定せずに日付・時刻関数をコールすると E_NOTICEが発生するようになりました。 またシステムの設定やTZ環境変数を使用するとE_STRICTが発生するようになりましたので注意してください。

<?
### 東京の日の出時刻を計算する
/*
緯度: 北緯 35.68949
経度: 西経 139.69171
天頂 ~= 90
時差: +9 GMT
*/

echo date("D M d Y"). ', sunset time : '.date_sunset(time(), SUNFUNCS_RET_STRING35.68949139.69171909);
// Wed May 06 2009, sunset time : 18:28
?>

getdate
日付/時刻情報を連想配列で取得

unknown

array getdate ( [int $タイムスタンプ] )

タイムスタンプに関する日付情報の連想配列を返します。 オプションの第2引数タイムスタンプを省略した場合は、現在ローカル時刻(=time()関数の値)に関する情報を返します(デフォルト)。

返り値の連想配列の内容は、下記になります。

返り値の連想配列のキー
キー意味返り値の例
second現在の秒0~59
minutes現在の分0~59
hours現在の時0~23
mday現在の月次の日付1~31
wday現在の曜日番号0(日曜)~6(土曜)
mon現在の月1~12
year現在の年例2005
ydayその年の通算日0~365
weekday現在の曜日の文字列Sunday~Saturday
month現在の月の文字列January~December
0UNIX時間(1970年1月1日)からの秒数。time()の戻り値と同様。 date()でも使用される。システムによって違うが、通常は-2147483648~2147483647.
<?
// timestamp を省略した場合(現在ローカル時間)
$tday getdate();
echo "現在日付:".$tday[year]."年".$tday[mon]."月".$tday[mday]."日";
//現在日付:2005年02月13日

print_r($tday);
/*
Array
(
    [seconds] => 28
    [minutes] => 56
    [hours] => 22
    [mday] => 13
    [wday] => 0
    [mon] => 2
    [year] => 2005
    [yday] => 43
    [weekday] => Sunday
    [month] => February
    [0] => 1108302988
)
*/

// timestamp を指定した場合
$timestamp mktime(0,0,0,12,1,1980);
$birthday getdate($timestamp);
echo "誕生日:".$birthday[year]."年".$birthday[mon]."月".$birthday[mday]."日";
//誕生日:1980年12月1日

print_r($birthday);
/*
Array
(
    [seconds] => 0
    [minutes] => 0
    [hours] => 0
    [mday] => 1
    [wday] => 1
    [mon] => 12
    [year] => 1980
    [yday] => 335
    [weekday] => Monday
    [month] => December
    [0] => 344444400
)
*/
?>

gettimeofday
現在時間を連想配列で取得する

unknown

mixed gettimeofday ( [bool $return_float] )

システムコールから返されたデータを有する連想配列を返します。 オプションの第1引数return_float(PHP v5.1.0~)にTRUEが指定されている場合は、浮動小数点型で返します。

連想配列のキー
キー意味
sec
usecマイクロ秒
minuteswestグリニッジ標準時を分で表した値
dsttime夏時間補正の型。サマータイムなら1、そうでない場合は0を返す
<?
print_rgettimeofday() );
/*
Array
(
    [sec] => 1108308165
    [usec] => 852384
    [minuteswest] => -540
    [dsttime] => 0
)
*/
?>

gmdate
現在のグリニッジ標準時(GMT)をフォーマットして取得する

unknown

string gmdate ( string $フォーマット文字列[, int $タイムスタンプ] )

date()と同じ動作ですが、返される時刻がグリニッジ標準時(GMT)である点が異なります。 グリニッジ標準時では、日本時間よりも9時間前の時刻になります。

グリニッジ標準時を日本時間に換算するには、この関数の返り値に32400秒(60*60*9)を加算します。

<?
//グリニッジ標準時は日本時間と9時間の差異がある
echo date("M d Y H:i:s") . "<br>"// May 03 2006 22:32:55
echo gmdate("M d Y H:i:s") . "<br>"// May 03 2006 13:32:55

//グリニッジ標準時を日本時間にするには32400秒(60*60*9)加える
echo gmdate("M d Y H:i:s"time()+32400) . "<br>"// May 03 2006 22:35:39s
?>

gmmktime
現在のグリニッジ標準時(GMT)からUnixタイムスタンプを取得する

unknown

int gmmktime ( [int $時[, int $分[, int $秒[, int $月[, int $日[, int $年[, int $is_dst]]]]]]] )

UNIX時間を整数で返します。 指定する引数がGMT日付を表すことを除いて、mktime()と同じです。 この関数は内部でmktime()を使用しているので、ローカル時刻として有効な値のみ使用することができます。

mktime()と同様に、引数は右から順に省略することができます。 省略した引数には、GMTの日付と時刻に従って、現在の値が割り当てられます。

オプションの第7引数is_dstは、PHP v5.1.0で廃止されました。

<?
echo gmmktime(000111970); // 0
?>

gmstrftime
ロケールの設定に基づいてGMT/UTC 時刻/日付をフォーマットする

unknown

string gmstrftime ( string $フォーマット[, int $タイムスタンプ] )

指定したタイムスタンプまたは、タイムスタンプが指定されていない場合は、現在のローカル時刻を使用してGMT/UTC 時刻/日付を、指定したフォーマットに基づいた形式にして返します。

グリニッジ標準時(GMT)を返すことを除いて、strftime()と同じ動作です。

第1引数フォーマットは、strftime()を参照してください。

オプションの第2引数タイムスタンプには、UNIX時間を整数で指定します。 省略した場合は、現在ローカル時刻(=time()の値)が使用されます。

<?
setlocale(LC_TIME'jpn');

echo strftime("%b %d %Y %H:%M:%S"mktime(2000123198))."\n";
// Dec 31 1998 20:00:00

echo gmstrftime("%b %d %Y %H:%M:%S"mktime(2000123198))."\n";
// Dec 31 1998 11:00:00 
?>

idate
ローカルな時刻/日付を整数として整形する

unknown

int idate ( string $フォーマット[, int $タイムスタンプ] )

指定したタイムスタンプを指定したフォーマットの形式にした日付数値を返します。 タイムスタンプを省略した場合は、現在のローカル時刻(=time()の返り値)が適用されます。

date()と異なり、フォーマットには1文字しか指定することができません。

<?
$timestamp strtotime('1st January 2004'); //1072915200

# 年を2桁で表示(「04」のように年が0から始まる場合は、4のみが表示されます)
echo idate('y'$timestamp); // 4
?>

localtime
ローカルタイムを取得する

unknown

array localtime ( [int $タイムスタンプ[, bool $is_associative]] )

C言語のlocaltime関数の返り値と同じ内容の配列を返します。

オプションの第1引数タイムスタンプを省略した場合は、現在ローカル時刻(=time()関数の値)が使用されます(デフォルト)。

オプションの第2引数is_associativeFALSEを指定、または省略した場合、返り値は数値添字の配列となります。 TRUEを指定した場合、返り値は連想配列となります。

連想配列のキー
キー内容
tm_sec
tm_min
tm_hour時間
tm_mday月単位の日付
tm_mon月。月は0(1月)~11(12月)。
tm_year1900年からの年
tm_wday週単位の日付。0(日曜日)~6(土曜日)。
tm_yday年単位の日付
tm_isdst夏時間が有効かどうか
<?
$localtime localtime();
echo nl2br(print_r($localtime,true));
/*
Array
(
[0] => 21
[1] => 35
[2] => 23
[3] => 3
[4] => 4
[5] => 106
[6] => 3
[7] => 122
[8] => 0
)
*/

//返り値を連想配列で返す場合(第2引数にTRUEを指定)
$localtime_assoc localtime(time(), true);
echo nl2br(print_r($localtime_assoc,true));
/*
Array
(
[tm_sec] => 21
[tm_min] => 35
[tm_hour] => 23
[tm_mday] => 3
[tm_mon] => 4
[tm_year] => 106
[tm_wday] => 3
[tm_yday] => 122
[tm_isdst] => 0
)
*/
?>

microtime
現在のUnixタイムスタンプをマイクロ秒まで返す

unknown

mixed microtime ( [ bool $get_as_float ] )

現在のUNIX時間をマイクロ秒単位で返します。

オプションの第1引数get_as_floatet_as_floatTRUEを指定すると、返り値を秒単位(浮動小数点型)で返します。 省略すると、文字列「msec sec」(文字列の各部分は秒単位)を返します。 「sec」は1970年1月1日 0:00:00 GMTから計算した秒数、「msec」はマイクロ秒の部分になります。

<?
##### PHP 5 におけるタイマスクリプト実行
$time_start=microtime(true);

// しばらくスリープ
usleep(100);

$time_end=microtime(true);
$time=$time_end $time_start;

echo "Did nothing in $time seconds\n";
// Did nothing in 0.00317001342773 seconds
?>

mktime
日付を UNIX時間として取得する

unknown

int mktime ( [int $時[, int $分[, int $秒[, int $月[, int $日[, int $年[, int $is_dst]]]]]] )

指定した引数に従ってUNIX時間を返します。 不正な引数があった場合に-1(PHP5.1以降はFALSE)を返します。

引数は右から順に省略することができます。 省略した引数には、現在ローカル時刻(=time()関数の値)が割り当てられます。

引数を省略した場合

<?
//以下の2つは '2006-04-03 00:44:40' を出力
//引数1つ(時のみ)
echo date('Y-m-d H:i:s'mktime(17)) . "<br>"//引数2つ(時、分)
echo date('Y-m-d H:i:s'mktime(17,45)) . "<br>";

//以下はいずれも '2006-04-03 17:45:59' を出力
//引数3つ(時、分、秒)
echo date('Y-m-d H:i:s'mktime(17,45,59)) . "<br>";
//引数4つ(時、分、秒、月)
echo date('Y-m-d H:i:s'mktime(17,45,59,4)) . "<br>";
//引数5つ(時、分、秒、月、日)
echo date('Y-m-d H:i:s'mktime(17,45,59,4,3)) . "<br>";
//引数6つ(時、分、秒、月、日、年)
echo date('Y-m-d H:i:s'mktime(17,45,59,4,3,2006)) . "<br>";
?>

範囲外の値は自動修正される

この関数は、指定した日付の妥当性も確認します。 不正ではなく範囲外の値を指定した場合は、自動的に修正して計算されます。

<?
// 以下の例の出力はいずれも、'2007/01/01' になる
echo date('Y/m/d'mktime(0,0,0,12,32,06));
echo date('Y/m/d'mktime(0,0,0,12,32,2006));
?>

月の末日を取得

オプションの第5引数0を指定した場合は、指定した月の前月の末日が自動計算されます。

<?
//指定した月の'前月の末日'を取得するには、日に'0'を指定する
$lastday mktime(000302006);
echo date("Y年 m月 d日"$lastday); // 2006年 02月 28日
?>

オプションの第7引数is_dstは、サマータイムなら1を、そうでない場合は0、不明ならば-1がセットされます(PHP v5.1.0で廃止)。

strftime
ロケールの設定に基づいてローカルな日付・時間をフォーマットする

unknown

int strftime ( string $フォーマット[, int $タイムスタンプ] )

ローカルの日付・時刻を、ロケールの設定に基づいてフォーマットします。 月、曜日の名前などの言語に依存する文字列は、setlocale()で指定された現在のロケールを考慮して表示されます。

第1引数フォーマットには、日付のフォーマット形式を指定します。 指定可能な文字数は、1023文字です。

フォーマット説明返り値の例
%a短縮された曜日の名前Sun~Sat
%A完全な曜日の名前Sunday~Saturday
%d10 進数で 2桁の日付(先頭のゼロつき)01~31
%e1桁の場合は先頭にスペースをいれた日付1~31
%j3桁で先頭にゼロを含む年間での日付001~366
%uISO-8601 数値表現であらわした曜日1(月曜日)~7(土曜日)
%w数値表現であらわした曜日0(日曜日)~6(土曜日)
%U指定した年の週番号。最初の日曜日を第一週の開始日とする13(年間の第13週の場合)
%VISO-8601:1988 で規定された、指定した年の週番号。週の開始日は月曜日で、第1週は少なくとも 4日はあることになる01~53(53 は年をまたがる週になります)
%Wその年の週番号の数値表現。最初の月曜日を最初の週の初日とする46(46番目の週の場合。開始日は月曜日)
%b現在のロケールに基づく短縮された月の名前Jan~Dec
%B現在のロケールに基づく完全な月の名前January~December
%h現在のロケールに基づく短縮された月の名前(%b のエイリアス)Jan~Dec
%m2桁であらわした月01(1月)~12(12月)
%C2桁であらわした世紀(年を 100 で割り、整数に丸めたもの)20 正規の場合は 19
%g2桁であらわした年。ISO-8601:1988 標準形式(%V を参照)2009年 1月 6日の場合は 09
%G%g の 4桁完全版2009年 1月 3日の場合は 2009
%y2桁であらわした年2009年の場合は 09、1979年の場合は 79
%Y4桁であらわした年2038
%H2桁であらわした 24 時間制の時間00~23
%I2桁であらわした 12 時間制の時間01~12
%l(lower-case 'L')12 時間制の時間で、1桁の場合は先頭にスペースをつけたもの1~12
%M2桁であらわした分00~59
%p指定した時刻に応じた大文字の 'AM'あるいは'PM'00:31ならAM、22:23ならPM
%P指定した時刻に応じた小文字の 'am'あるいは'pm'00:31ならam、22:23ならpm
%r'%I:%M:%S %p'と同じ21:34:17なら09:34:17 PM
%R'%H:%M'と同じ12:35 AMなら00:35、4:44 PMなら16:44
%S2桁であらわした秒00~59
%T'%H:%M:%S'と同じ09:34:17 PMなら21:34:17
%XPreferred time representation based on locale, without the dateExample: 03:59:16 or 15:59:16
%zUTC からのオフセットあるいはタイムゾーン略称(OS に依存)東海岸時刻なら-0500あるいはEST
%Zタイムゾーンオフセットあるいは略称のうち %z で返されないもの(OS に依存)東海岸時刻なら-0500あるいはEST
タイムスタンプ
%c現在のロケールにもとづく日付と時間の表現Tue Feb 5 00:45:10 2009
%D'%m/%d/%y'と同じ2009年 2月 5日なら 02/05/09
%F'%y-%m-%d'と同じ(データベースのタイムスタンプとして一般的)2009年 2月 5日なら 2009-02-05
%sUnix エポックからのタイムスタンプ(time() 関数と同じ)1979年 9月 10日午前 08:40:00なら305815200
%x現在のロケールにもとづく日付の表現(時間は除く)2009年 2月 5日なら 02/05/09
その他
%n改行文字(' ')-
%tタブ文字(' ')-
%%パーセント文字('%')-

オプションの第2引数タイムスタンプには、UNIX時間を整数で指定します。 省略した場合は、現在ローカル時刻(=time()の値)が使用されます。

<?
setlocale(LC_TIME'en_US');

echo strftime("%b %d %Y %H:%M:%S"mktime(2000123198))."\n";
// Dec 31 1998 20:00:00

echo gmstrftime("%b %d %Y %H:%M:%S"mktime(2000123198))."\n";
// Dec 31 1998 11:00:00 
?>
<?
# 16:10 2009/05/06
# 日
echo "短縮された曜日の名前:".strftime("%a")."<br>"// Wed
echo "完全な曜日の名前:".strftime("%A")."<br>"// Wednesday
echo "10進数で2桁の日付 (先頭のゼロつき):".strftime("%d")."<br>"// 06
echo "3桁で先頭にゼロを含む年間での日付:".strftime("%j")."<br>"// 126
echo "数値表現であらわした曜日:".strftime("%w")."<br>"// 3
# 週
echo "指定した年の週番号:".strftime("%U")."<br>"// 18
echo "その年の週番号の数値表現:".strftime("%w")."<br>"// 3
# 月
echo "現在のロケールに基づく短縮された月の名前:".strftime("%b")."<br>"// May
echo "現在のロケールに基づく完全な月の名前:".strftime("%B")."<br>"// May
echo "2桁であらわした月:".strftime("%m")."<br>"// 05
# 年
echo "2桁であらわした年:".strftime("%y")."<br>"// 09
echo "4桁であらわした年:".strftime("%Y")."<br>"// 2009
# 時
echo "2桁であらわした24時間制の時間:".strftime("%H")."<br>"// 16
echo "2桁であらわした12時間制の時間:".strftime("%I")."<br>"// 04
echo "2桁であらわした分:".strftime("%M")."<br>"// 10
echo "指定した時刻に応じた大文字の 'AM' あるいは 'PM':".strftime("%p")."<br>"// PM
echo "2桁であらわした秒:".strftime("%S")."<br>"// 26
echo "日付なしの時間のみ:".strftime("%X")."<br>"// 16:10:26
# タイムスタンプ
echo "現在のロケールにもとづく日付と時間の表現:".strftime("%c")."<br>"// 05/06/09 16:10:26
echo "現在のロケールにもとづく日付の表現(時間は除く):".strftime("%x")."<br>"// 05/06/09
?>

strtotime
英文形式の日付をUNIX時間に変換する

unknown

int strtotime ( string $time[, int $now] )

英文形式の日付を含む文字列を指定すると、nowで与えられた形式からUNIX時間へ変換して返します。 失敗した場合に-1(PHP v5.1.0以降はFALSE)を返します。

オプションの第2引数nowを省略した場合は、現在ローカル時刻(=time()の値)が使用されます。

<?
/******************** 失敗のチェック */
$str='hogehoge';
$timestamp strtotime($str);
# PHP5.1.0以降は失敗した場合に 'FALSE' を返す
# それ以前のバージョンでは、'-1' を返す
if ((PHP_VERSION >= "5.1.0" && $timestamp === false) || (PHP_VERSION "5.1.0" && $timestamp === -1)) {
    echo "'".$str."' は英文日付文字列ではありません<br>\n";
}else{
    echo date('Y-m-d H:i:s'$timestamp);
}
?>

年を2桁の数値で指定した場合、その値が以下のようにそれぞれ変換されます。

  • 0~37の範囲なら2006~2037
  • 70~99の範囲なら1970~1999
<?
//年に0~37の2桁の数値を指定
echo date("Y-m-d"strtotime("10 September 0")), "<br>\n"// 2000-09-10
echo date("Y-m-d"strtotime("10 September 37")), "<br>\n"// 2037-09-10

//年に70~99の2桁の数値を指定
echo date("Y-m-d"strtotime("10 September 70")), "<br>\n"// 1970-09-10
echo date("Y-m-d"strtotime("10 September 99")), "<br>\n"// 1999-09-10

//今日、昨日、明日
echo date("Y-m-d"strtotime("now")) . "<br>\n"// 2006-05-03
echo date("Y-m-d"strtotime("today")) . "<br>\n"// 2006-05-03
echo date("Y-m-d"strtotime("yesterday")) . "<br>\n"// 2006-05-02
echo date("Y-m-d"strtotime("tomorrow")) . "<br>\n"// 2006-05-04

//今日より前で一番最近の火曜日
echo date("Y-m-d"strtotime("last Tue")) . "<br>\n"// 2006-05-02

//翌週の月曜日
echo date("Y-m-d"strtotime("next Monday")) . "<br>\n"// 2006-05-08
echo date("Y-m-d"strtotime("next Mon")) . "<br>\n"// 2006-05-08

//2週間後
echo date("Y-m-d"strtotime("+2 week")) . "<br>\n"// 2006-05-17
echo date("Y-m-d"strtotime("2 week")) . "<br>\n"// 2006-05-17

//1年後
echo date("Y-m-d"strtotime("+1 year")) . "<br>\n"// 2007-05-03
echo date("Y-m-d"strtotime("+1 year"time())); // 2007-05-03
?>

time
現在のUNIX時間を取得する

unknown

int time ( void )

現在時刻をUNIX時間として返すため、現在時刻と20時間の差異があります。

UNIX時間を現在時間に換算するには、この関数の返り値に72000秒(60*60*20)を加算します。

<?
$now =  time() + 72000;
echo date('Y 年 m月 d日 H:i:s'$now); // 2006 年 04月 03日 18:43:45
?>

timezone_open PHP5~
新しい DateTimeZone オブジェクトを返す

unknown

DateTimeZone timezone_open ( string $タイムゾーン )
DateTimeZone DateTimeZone::__construct ( string $タイムゾーン )

新しいDateTimeZoneオブジェクトを返します。 失敗した場合はFALSEを返します。

タイムゾーンには、タイムゾーンを表す正式な(例:Europe/Prague)あるいは略称(例:CET)を指定します。

timezone_name_from_addr PHP5~
略称からタイムゾーン名を返す

unknown

string timezone_name_from_abbr ( string $タイムゾーンの略称[, int $GMTからのオフセット秒数[, int $isdst ]] )

指定したタイムゾーンの略称からタイムゾーン名を返します。 失敗した場合はFALSEを返します。

オプションの第2引数GMTからのオフセット秒数のデフォルトは「-1」で、タイムゾーンの略称に対応するタイムゾーンのうち最初に見つかったものを返します。 それ以外の場合は指定したオフセットを探し、見つからなかった場合は、他のオフセットも含めて最初に見つかったものを化します。

オプションの第3引数isdstには、夏時間の識別子を指定します。 タイムゾーンの略称が見つからなかった場合は、GMTからのオフセット秒数isdstをもとにタイムゾーンを探します。

<?
# 略称からタイムゾーン名を取得する
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr(""36000) . "\n";
/*
Europe/Berlin
Europe/Paris 
*/
?>

timezone_version_get PHP5~
timezonedbの現在のバージョンを取得

unknown

string timezone_version_get ( void )

timezonedbの現在のバージョン番号を返します。

<?
echo timezone_version_get(); // 2009.7
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women