【PHP入門】date()関数の使い方を徹底解説!日付・時刻の書式指定子一覧と実行例
PHPの date() 関数は、ローカルの日付や時刻を任意の形式に整形(フォーマット)するための関数です。整数型のUnixタイムスタンプを引数として渡すと、その時刻をもとに整形された文字列が返されます。タイムスタンプを省略した場合は、現在の時刻が自動的に使用されます。
基本構文
date(format, timestamp)
パラメータ
timestamp − 整数型のUnixタイムスタンプ。省略した場合は、現在のローカル時刻がデフォルトで使用されます。
format − 結果の出力形式を指定する書式文字列。主な指定文字は以下のとおりです。
日に関する書式指定子
d − 日(01〜31)。ゼロを先頭に付けた2桁表記
D − 曜日の略称(3文字。例:Mon、Tue)
j − 日(1〜31)。先頭にゼロを付けない表記
l(小文字のL)− 曜日の完全な名称(例:Monday、Sunday)
N − ISO-8601形式の曜日番号(月曜が1、日曜が7)
S − 英語の序数接尾辞(st、nd、rd、th の2文字。
jと組み合わせて使用すると効果的)w − 曜日の数値表現(日曜が0、土曜が6)
z − 年間の通算日数(0〜365)
週・年に関する書式指定子
W − ISO-8601形式の年内週番号(週は月曜から開始)
F − 月の完全な名称(January〜December)
m − 月の数値表現(01〜12)。先頭にゼロを付けた2桁表記
M − 月の略称(3文字。例:Jan、Feb)
n − 月の数値表現(1〜12)。先頭にゼロを付けない表記
t − 指定した月の日数(28〜31)
L − うるう年かどうか(うるう年なら1、それ以外は0)
o − ISO-8601形式の年番号
Y − 年(4桁表記。例:2025)
y − 年(2桁表記。例:25)
時刻に関する書式指定子
a − 午前/午後(小文字の am または pm)
A − 午前/午後(大文字の AM または PM)
B − Swatchインターネット時間(000〜999)
g − 12時間制の時(1〜12)。先頭にゼロを付けない表記
G − 24時間制の時(0〜23)。先頭にゼロを付けない表記
h − 12時間制の時(01〜12)。先頭にゼロを付けた2桁表記
H − 24時間制の時(00〜23)。先頭にゼロを付けた2桁表記
i − 分(00〜59)。先頭にゼロを付けた2桁表記
s − 秒(00〜59)。先頭にゼロを付けた2桁表記
タイムゾーン・その他の書式指定子
e − タイムゾーン識別子(例:UTC、Asia/Tokyo)
I(大文字のi)− サマータイムかどうか(サマータイム中なら1、それ以外は0)
O − グリニッジ標準時(GMT)との差分(例:+0100)
T − PHPが動作するマシンのタイムゾーン設定(例:EST、JST)
Z − タイムゾーンのオフセット秒数。UTCより西側は負、東側は正(-43200〜43200)
c − ISO-8601形式の日付(例:2004-02-12T15:19:21+00:00)
r − RFC 2822形式の日付(例:Thu, 21 Dec 2000 16:01:07 +0200)
U − Unixエポック(1970年1月1日 00:00:00 GMT)からの経過秒数
戻り値
date() 関数は、指定された書式文字列に従って整形された文字列を返します。タイムスタンプが渡されなかった場合は、現在の時刻をもとにした結果となります。
使用例①:現在の曜日と詳細な日付を取得
まずは基本的な使い方を見てみましょう。
<?php
date_default_timezone_set('UTC');
echo date("l");
echo "<br>";
echo date('l dS \of F Y h:i:s A');
echo "<br />";
?>
出力結果:
Thursday Thursday 11th of October 2018 05:05:34 AM
この例では、l によって曜日のフルネームを取得し、複数の書式指定子を組み合わせることで「曜日+日+序数接尾辞+月+年+時刻」を一度に出力しています。
使用例②:定義済み日付フォーマット定数を使う
続いて、DATE_RFC822 や DATE_ATOM といった定義済みフォーマット定数を使用した例です。
<?php
echo date(DATE_RFC822) . "<br>";
echo date(DATE_ATOM, mktime(0,0,0,11,7,2017));
?>
出力結果:
Thu, 11 Oct 18 05:06:15 +0000 2017-11-07T00:00:00+00:00
このように、mktime() 関数で生成したタイムスタンプを第2引数に渡すことで、特定の日時を任意の国際規格のフォーマットへ変換することも可能です。
まとめ
date() 関数は、PHPで日付や時刻を扱う際の最も基本的かつ重要な関数です。書式指定子を組み合わせることで、柔軟に日付文字列を生成できます。また、タイムゾーンを扱う場合は date_default_timezone_set() を事前に呼び出しておくと、意図しない時刻ズレを防げますので覚えておきましょう。
-
PHPのgmdate()関数とは?GMT/UTC基準で日時をフォーマットする方法を解説
PHPのgmdate()関数とはgmdate()関数は、GMT/UTC(グリニッジ標準時)に基づいた日付・時刻を整形し、文字列として返すPHPの組み込み関数です。date()関数とよく似ていますが、date()がサーバーのローカルタイムゾーンを使用するのに対し、gmdate()は常にGMT/UTCを基準として処理する点が大きな違いです。国際的なサービスやログの記録など、タイムゾーンに依存しない統一された日時表示が必要な場面で活躍します。構文gmdate(format, timestamp)パラメータformat:出力する日付文字列の形式を指定します。使用可能な書式指定文字は以下の通りです。日に
-
PHPのdate_format()関数の使い方を徹底解説!日付フォーマットの基本と書式指定子一覧
PHPのdate_format()関数は、DateTimeオブジェクトを指定した書式に従って整形し、文字列として返す関数です。日付や時刻を自由な形式で表示したい場合に非常に便利な、日付処理の基本となる関数の一つです。構文date_format(obj, format)パラメータ(引数)obj − フォーマット対象となる DateTime オブジェクトを指定します。format − 出力結果の書式を指定します。主な書式指定子は以下のとおりです。日に関する指定子d − 日(01〜31)。先頭にゼロが付きます。D − 曜日の省略形(3文字。例:Mon、Tue)。j − 日(1〜31)。先頭にゼロが付