ywork2020.com

Title

与えられた日時を書式化する

目次 (INDEX)

date とは

ここで説明する date とは次の語句からなる PHP の関数です。
date
読み: デイト
意味: 日付

目次に戻る

date 関数の概要

この関数は、引数に与えたタイムスタンプを、日付のフォーマット文字を元に書式化した文字列で返します。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

$formatDate = date(strFormat [, intTimestamp | null])
  • strFormat: 文字列でフォーマットを指定します。フォーマット文字に関しては別のセクションで一覧表にしています。
  • intTimestamp: 取得したい日時の値を数値型の Unix タイムスタンプで指定します。 この引数は 空、もしくは null にすることで現在の日時を自動で取得します。 これはちょうど time() で取得した値と同じになります。

目次に戻る

サンプルコードと実行結果

ここでは、現在の西暦年月日と曜日を日本式の表示フォーマットにして出力してみました。

サンプルコード: HTML ( 拡張子は .php )
<body>
<?php
	... 
?>
</body>
  • 02: <?php (php のコードを記述するための開始タグです。)
  • 03: ... (この行は [ サンプルコード: PHP ] の内容の部分です。)
  • 04: ?>(php の記述を終了するための終了タグです。)
  • ここでは HTML ドキュメントの body 要素内に php の開始タグと終了タグを置いていますが、 開始タグと終了タグはドキュメントのどの部分に設置しても構いませんし、ドキュメント内の複数の場所に分けて記述しても問題ありません。 また、HTML ドキュメントとしてではなく、純粋に php のコードのみを記述しても構いません。 ただし、どの記述方法であろうともファイルの拡張子は .php であることが必要です。
サンプルコード: PHP
<?php
	date_default_timezone_set("Asia/Tokyo");
	$arrJapDayName = array("日", "月", "火", "水", "木", "金", "土");
	echo( date("Y年 m月 d日", null ) . 
		"(" . $arrJapDayName[ date("w", null) ] . ")" 
	);
?>
  • 02: date_default_timezone_set("Asia/Tokyo") (タイムゾーンのデフォルト値を 「 東京標準時 」 にセットしています。)
  • 03: $arrJapDayName = array("日", "月", "火", "水", "木", "金", "土") ($arrJapDayName という変数に日本の曜日名を配列として代入しています。)
  • 04: date("Y年 m月 d日", null ) (date 関数の引数に表示フォーマットと null を与えています。null にしておくと自動で現在の日時を取得します。)
  • 05: $arrJapDayName[ date("w", null) ] (日本の曜日名を取得しているところです。date の引数であるフォーマットの部分に "w" の文字を指定することで 0 ~ 6 の曜日番号が返ってきます。この番号を配列 $arrJapDayName の配列セレクターに宛がうことで曜日名を取得しています。)
実行結果:
1970年 01月 01日(木)

目次に戻る

date 関数のフォーマット文字 一覧

ここでは、 date() 関数の引数の 1つである、フォーマットの指定に使われる定格文字を一覧表としてまとめました。 大文字と小文字が混在するので参考にする場合は注意してください。

date フォーマット文字 一覧
日に関係する文字概要戻り値の例
d 日にちを表す 2桁の数字 01 ~ 31
D 曜日を表す 3文字のテキスト Mon ~ Sun
j 日にちを表す数字 1 ~ 31
l 曜日を表すテキスト Sunday ~ Saturday
N 曜日を数値で表す (ISO-8601) 1 = 月曜 ~ 7 = 日曜
S 英字序数を表す ( j と共に使用できる) st, nd , rd , th
w 曜日を数値で表す 0 = 日曜 ~ 6 = 土曜
z 年間の通算日を数字で表す 0 ~ 365
週に関係する文字概要戻り値の例
W 月曜を開始基準にした年単位の週番号 年の第 n 週目
月に関係する文字概要戻り値の例
F 月を表すテキスト January ~ December
m 月を表す 2桁の数字 01 ~ 12
M 月を表す 3桁のテキスト Jan ~ Dec
n 月を表す数字 1 ~ 12
t 指定した月の総日数 (末日) 28 ~ 31
年に関係する文字概要戻り値の例
L 指定した年がうるう年であるか 0 = うるう年ではない , 1 = うるう年である
o ISO-8601 の週番号 (W) による年を表す
Y 年を 4桁の数字で表す 2021 = 2021
y 年を 2桁の数字で表す 2021 = 21
時に関係する文字概要戻り値の例
a 午前、または午後を小文字で表す am , pm
A 午前、または午後を大文字で表す AM , PM
B Swatch インターネット時間を表す 000 ~ 999
g 時を 12時間単位の数字で表す 1 ~ 12
G 時を 24時間単位の数字で表す 0 ~ 23
h 時を 12時間単位で 2桁の数字として表す 01 ~ 12
H 時を 24時間単位で 2桁の数字として表す 00 ~ 23
i 分を 2桁の数字として表す 00 ~ 59
s 秒を 2桁の数字として表す 00 ~ 59
u マイクロ秒を表す date() では常に 000000 となります。 DateTime::format() はマイクロ秒に対応しています。
v ミリ秒を表す date() では常に 000000 となります。 DateTime::format() はミリ秒に対応しています。
タイムゾーンに関係する文字概要戻り値の例
e タイムゾーンの識別子を表す UTC, GMT, Asia/Tokyo 等
I サマータイム中か否かを表す 0 = サマータイムでない , 1 = サマータイムである
O グリニッジ標準時 (GMT) との時差を表す +0100
p グリニッジ標準時 (GMT) との時差を表す +01:00
P グリニッジ標準時 (GMT) との時差を Z で表す +01:00
T タイムゾーンの略称を表す EST, MDT, +09
Z タイムゾーンのオフセット秒数を表す -43200 ~ 50400
c ISO 8601 でフォーマットされた日付を表す 2021-10-16T17:32:48+09:00
r RFC 2822 でフォーマットされた日付を表す Sat, 16 Oct 2021 17:32:48 +0900
U Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの経過秒数を表す 1634373168

目次に戻る