gmdate
| 解説 | 日付・時刻を書式化しGMTの日付で取得する |
|---|---|
| 書式 | string gmdate( string format [, int timestamp ] ) |
string gmdate( string 書式 [, int タイムスタンプ ] ) |
|
| 引数 |
format
フォーマットする書式
|
timestamp
Unixタイムスタンプ
|
|
| 返値 | 指定された書式でフォーマットされた文字列 |
gmdate()は第2引数で指定されたタイムスタンプを第1引数で指定したフォーマット文字によってフォーマット(整形)し、整形後の文字列を返します。
date()と機能や使用方法は同じですが、gmdate()の場合は返される時刻がグリニッジ標準時(GMT)となります。
フォーマット(整形)された文字列を返します。
format書式フォーマット(書式)を指定します。書式の指定にはフォーマット文字という書式化用に予め定められた文字を使います。フォーマット文字の一覧は後述します。
timestampタイムスタンプフォーマットしたい日付や時刻のタイムスタンプを指定します。省略した場合はtime()関数の値、つまり現在時刻が適用されます。
日本のタイムゾーンは +0900 です。つまり、GMTより9時間先行してるって事ですので、日本で使う場合は= FuncName(); ?>で取得したタイムスタンプに9時間を足す必要があります。
※タイムゾーンのオフセット秒数を取得する Z 形式のフォーマット文字は、gmdate関数では常に 0 を返します。
参考関数
- time() ---- 現在のUnixタイムスタンプを取得する
- date() ---- 日付・時刻を書式化する
- mktime() ---- 指定した日時のUNIXタイムスタンプを取得する
- gmmktime() ---- GMTで指定した日時のUNIXタイムスタンプを取得する
フォーマット文字一覧
date()のフォーマット文字一覧です。gmdate()でも同じフォーマット文字を使用します。
| フォーマット文字 | 説明 |
|---|---|
| a | 午前/午後(am または pm) |
| A | 午前/午後(AM または PM) |
| B | インターネット時間(000 ~ 999) |
| d | 2桁で示す日付(01 ~ 31) |
| D | 3文字の曜日(Sun ~ Sat) |
| F | フルスペルの月(January ~ December) |
| g | 先頭に 0 をつけない12時間単位の時間(1 ~ 12) |
| G | 先頭に 0 をつけない24時間単位の時間(0 ~ 23) |
| h | 2桁で示す12時間単位の時間(01 ~ 12) |
| H | 2桁で示す24時間単位の時間(00 ~ 23) |
| i | 2桁の分(00 ~ 59) |
| I | サマータイム中かどうかのフラグ(1 または 0) |
| j | 先頭に 0 をつけない日付(1 ~ 31) |
| l | フルスペルの曜日(Sunday ~ Saturday) |
| L | 閏年かどうかのフラグ(1 または 0) |
| m | 2桁で示す月(01 ~ 12) |
| M | 3文字で表す月(Jan ~ Dec) |
| n | 先頭に 0 をつけない月(1 ~ 12) |
| O | グリニッジ標準時(GMT)との時間差(+0900 など) |
| r | RFC822に定義されている日付形式(Thu, 21 Dec 2000 16:01:07 +0900 など) |
| s | 2桁で示す秒(00 ~ 59) |
| S | 2文字で表す英語形式の序数を表すサフィックス(st, nd, rd または th) |
| t | 指定した月の日数(28 ~ 31) |
| T | ローカルマシーンのタイムゾーンの設定 |
| U | Unix時間(Unixタイムスタンプ:time()の値と同じ) |
| w | 数値で示す曜日(0:日 ~ 6:土) |
| W | ISO-8601 月曜日に始まる年単位の週番号(42:1年の第42週目) |
| y | 西暦を2桁を示す年 |
| Y | 西暦を4桁で示す年 |
| z | 年間の通算日― 1月1日からの通算日数(0 ~ 366) |
| Z | タイムゾーンのオフセット秒数(-43200 ~ 43200) |
この表に挙げられている以外の文字列があればその文字列はそのまま出力されます。
文字の前に \ をつけるとフォーマット文字をそのまま出力できます。 "" (ダブルクォート)で書式を囲んでいる場合に "\n" や "\t" とすると改行・タブとみなされて n や t は出力されません。出力したい時には '\n' とシングルクォートで囲むか、 "\\n" と2重にエスケープして下さい。
サンプルスクリプト
簡単な利用例
- // 現在時刻の各値をGMTとして取得
- $hour = gmdate("H");
- $minute = gmdate("i");
- $second = gmdate("s");
- $month = gmdate("n");
- $day = gmdate("j");
- $year = gmdate("Y");
- // GMTからタイムスタンプを生成
- $timestamp = gmmktime($hour, $minute, $second, $month, $day, $year);
- echo "GMT時間:".gmdate("Y/m/d H:i:s", $timestamp)."<br />\n";
- echo "日本時間:".date("Y/m/d H:i:s");
出力結果
GMT時間:2019/03/16 13:13:18
日本時間:2019/03/16 22:13:18
日本時間:2019/03/16 22:13:18





