UPDATE:2020年06月22日
PHP now 今の日付や時間を取得する
現在(now)の日付や時間を取得する
その他の日付を取得するには「PHP 日付 あらゆる日時を取得」をお読みください。
php.ini に記述する場合
書式 date()
日時の文字列 = date('日付/時刻フォーマット文字列' [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日時となる)
//返り値は文字列(string)
date() が理解できる日付/時刻フォーマット文字列
1 2 3 4 5 | <?php echo date('Y-m-d')."<br>\n";//現在日付 2020-06-22 echo date('H:i:s')."<br>\n";//現在時間 12:55:41 echo date('Y-m-d H:i:s')."<br>\n";//現在日時 2020-06-22 12:55:41 ?> |
書式 DateTimeクラス
オブジェクト = new DateTime(['英文形式 OR 日付/時刻のフォーマット文字列']);
//[ ]は省略可能です。
DateTimeクラス が理解できる英文形式フォーマット文字列
DateTimeクラス が理解できる日付/時刻のフォーマット文字列
DateTime format()メソッド が理解できるフォーマット文字列
1 2 3 4 5 6 | <?php $objDateTime = new DateTime(); echo $objDateTime->format('Y-m-d')."<br>\n";//現在日付 2019-12-31 echo $objDateTime->format('H:i:s')."<br>\n";//現在時間 23:59:59 echo $objDateTime->format('Y-m-d H:i:s')."<br>\n";//現在日時 2019-12-31 23:59:59 ?> |
書式 time()関数
UNIXタイムスタンプ = time(なし);
//time()の引数はありません。
1 2 3 4 | <?php //現在のUNIXタイムスタンプ echo time();//1592801408 ?> |
date() や DateTimeクラス format()メソッド の日付/時刻フォーマット文字列 簡易表
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
年 | Y | 1999 や 2020 | 年 4 桁の数字 |
y | 99 や 19 | 年 2 桁の数字 | |
L | 1 か 0 | 閏年かどうか。1なら閏年。0なら閏年ではない | |
月 | F | January~December | 月 フルスペルの文字 |
m | 01~12 | 月 数字。先頭にゼロをつける | |
M | Jan~Dec | 月 3 文字形式 | |
n | 1~12 | 月 数字。先頭にゼロをつけない | |
t | 28~31 | 月 指定した月の日数 | |
日 | d | 01~31 | 日 2桁の数字(先頭にゼロがつく場合も) |
j | 1~31 | 日 数字。先頭にゼロをつけない | |
曜日 | D | Mon~Sun | 3文字のテキスト形式 |
l | Sunday~Saturday | フルスペル形式 | |
N | 1~7 | 数字 1(月曜) から 7(日曜) | |
w | 0~6 | 数字 0(日曜) から 6(土曜) | |
W | 1 | 数字 月曜日に始まる年単位の週番号 | |
時 | g | 1~12 | 12時間単位。先頭ゼロなし |
G | 0~23 | 24時間単位。先頭ゼロなし | |
h | 01~12 | 12時間単位。先頭ゼロあり | |
H | 00~23 | 24時間単位。先頭ゼロあり | |
a | am pm | 午前/午後。小文字表示 | |
A | AM PM | 午前/午後。大文字表示 | |
分 | i | 00~59 | 先頭ゼロあり |
秒 | s | 00~59 | 先頭ゼロあり |
全日付 | c | 2020-05-15T01:04:54+09:00 | ISO8601 フォーマット日付 |
r | Wed, 15 May 2020 01:04:54 +0900 | RFC2822 フォーマット日付 |
現在の日時を取得
date() で現在(now)の日付や時間を取得する
date()関数 は、指定した「日付や時刻のフォーマット文字列」から「日時の文字列」を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列'); 」。
例えば
1 | <?php echo date('Y');//出力 2020 ?> |
とすると、現在の「年」(4桁)が取得できます。「Y」は4桁の年数を表す「日付や時刻のフォーマット文字列」です。
オプションでUNIXタイムスタンプを指定すると、指定したタイムスタンプに合わせた日時の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列', UNIXタイムスタンプ); 」。タイムスタンプは、time()関数、strtotime()関数 や mktime()関数 で取得できます。タイムスタンプを省略すると現在日時となります。
date()関数 のオプションのタイムスタンプで+5年後のタイムスタンプを指定します。結果は現在から5年後の「年」(4桁)が取得できます。
実行日時 2020 年の場合
1 | <?php echo date('Y', strtotime('+5 year'));//出力 2025 ?> |
date()関数 のオプションのタイムスタンプを time()関数 で取得してみます。オプションを省略した場合と同じ意になります。
実行日時 2020 年の場合
1 2 | <?php echo date('Y', time());//出力 2020 ?> <?php echo date('Y');//出力 2020 ?> |
time()関数 でUNIXタイムスタンプを+5年後に指定してみます。
実行日時 2020 年の場合
1 2 3 4 5 6 | <?php //+5年後のUNIXタイムスタンプ $timestamp = time() + (365 * 24 * 60 * 60) * 5; //(365日 * 24時間 * 60分 * 60秒) * 5年 echo date('Y', $timestamp)."<br>\n";//出力 2025 ?> |
date() の「年 月 日 時 分 秒」を表現するフォーマット文字列を使用すると、現在の日時を取得することが出来ます。
実行日時 2020-01-01 01:01:01 の場合
1 2 3 4 5 | <?php echo date('Y-m-d')."<br>\n";//現在日付 2020-01-01 echo date('H:i:s')."<br>\n";//現在時間 01:01:01 echo date('Y-m-d H:i:s')."<br>\n";//現在日時 2020-01-01 01:01:01 ?> |
結果は
01:01:01
2020-01-01 01:01:01
となります。
DateTimeクラス で現在の日付や時間を取得する
DateTimeクラスは様々な日付や時刻を表現できるクラスです。DateTimeクラスを呼び出しオブジェクト(インスタンス)を作成します「 オブジェクト = new DateTime(); 」。DateTimeクラスを呼び出す際に日付や時刻を指定することも出来ます「 オブジェクト = new DateTime('日付/時刻のフォーマット文字列'); 」。省略した場合は現在の日時になります。オブジェクトのformat()メソッドは、指定した日付や時刻のフォーマット文字列から日時の文字列を返します「 日時の文字列 = オブジェクト->format('日付/時刻のフォーマット文字列'); 」。成功すると日時の文字列を返し、失敗すると FALSE を返します。format()メソッドで指定する日時のフォーマット文字列はdate()関数で指定するフォーマットと同じです。
実行日時 2020-01-01 01:01:01 の場合
1 2 3 4 5 6 7 8 9 | <?php //クラスを呼び出してオブジェクトを作成 $objDateTime = new DateTime(); //format()メソッドで現在日時を出力 echo $objDateTime->format('Y-m-d')."<br>\n";//現在日付 2020-01-01 echo $objDateTime->format('H:i:s')."<br>\n";//現在時間 01:01:01 echo $objDateTime->format('Y-m-d H:i:s')."<br>\n";//現在日時 2020-01-01 01:01:01 ?> |
結果は
01:01:01
2020-01-01 01:01:01
となります。
現在(now)の 年 取得
date() で 年 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 | ・Y 年。4 桁の数字。(1999 や 2020):<strong><?php echo date('Y'); ?></strong><br> ・y 年。2 桁の数字。(99 や 20):<strong><?php echo date('y'); ?></strong><br> |
結果は
・y 年。2 桁の数字。(99 や 20):20
となります。
DateTimeクラス で 年 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 | <?php $objDateTime = new DateTime(); ?> ・Y 年。4 桁の数字。(1999 や 2020):<strong><?php echo $objDateTime->format('Y'); ?></strong><br> ・y 年。2 桁の数字。(99 や 20):<strong><?php echo $objDateTime->format('y'); ?></strong><br> |
結果は
・y 年。2 桁の数字。(99 や 20):20
となります。
現在(now)の 月 取得
date() で 月 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 4 5 | ・F 月。フルスペルの文字。(January~December):<strong><?php echo date('F'); ?></strong><br> ・m 月。数字。先頭にゼロをつける。(01~12):<strong><?php echo date('m'); ?></strong><br> ・M 月。3 文字形式(Jan~Dec):<strong><?php echo date('M'); ?></strong><br> ・n 月。数字。先頭にゼロをつけない。(1~12):<strong><?php echo date('n'); ?></strong><br> ・t 指定した月の日数。(28~31):<strong><?php echo date('t'); ?></strong><br> |
結果は
・m 月。数字。先頭にゼロをつける。(01~12):06
・M 月。3 文字形式(Jan~Dec):Jun
・n 月。数字。先頭にゼロをつけない。(1~12):6
・t 指定した月の日数。(28~31):30
となります。
DateTimeクラス で 月 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 4 5 6 | <?php $objDateTime = new DateTime(); ?> ・F 月。フルスペルの文字。(January~December):<strong><?php echo $objDateTime->format('F'); ?></strong><br> ・m 月。数字。先頭にゼロをつける。(01~12):<strong><?php echo $objDateTime->format('m'); ?></strong><br> ・M 月。3 文字形式(Jan~Dec):<strong><?php echo $objDateTime->format('M'); ?></strong><br> ・n 月。数字。先頭にゼロをつけない。(1~12):<strong><?php echo $objDateTime->format('n'); ?></strong><br> ・t 指定した月の日数。(28~31):<strong><?php echo $objDateTime->format('t'); ?></strong><br> |
結果は
・m 月。数字。先頭にゼロをつける。(01~12):06
・M 月。3 文字形式(Jan~Dec):Jun
・n 月。数字。先頭にゼロをつけない。(1~12):6
・t 指定した月の日数。(28~31):30
となります。
現在(now)の 日 取得
date() で 日 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 | ・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):<strong><?php echo date('d'); ?></strong><br> ・j 日。先頭にゼロをつけない。(1~31):<strong><?php echo date('j'); ?></strong><br> |
結果は
・j 日。先頭にゼロをつけない。(1~31):22
となります。
DateTimeクラス で 日 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 | <?php $objDateTime = new DateTime(); ?> ・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):<strong><?php echo $objDateTime->format('d'); ?></strong><br> ・j 日。先頭にゼロをつけない。(1~31):<strong><?php echo $objDateTime->format('j'); ?></strong><br> |
結果は
・j 日。先頭にゼロをつけない。(1~31):22
となります。
現在(now)の 曜日 取得
date() で 曜日 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 | ・D 曜日。3文字のテキスト形式。(Mon~Sun):<strong><?php echo date('D'); ?></strong><br> ・l 曜日。フルスペル形式。(Sunday~Saturday):<strong><?php echo date('l'); ?></strong><br> ・w 曜日。数値。(0(日曜) から 6(土曜)):<strong><?php echo date('w'); ?></strong><br> |
結果は
・l 曜日。フルスペル形式。(Sunday~Saturday):Monday
・w 曜日。数値。(0(日曜) から 6(土曜)):1
となります。
DateTimeクラス で 曜日 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 4 | <?php $objDateTime = new DateTime(); ?> ・D 曜日。3文字のテキスト形式。(Mon~Sun):<strong><?php echo $objDateTime->format('D'); ?></strong><br> ・l 曜日。フルスペル形式。(Sunday~Saturday):<strong><?php echo $objDateTime->format('l'); ?></strong><br> ・w 曜日。数値。(0(日曜) から 6(土曜)):<strong><?php echo $objDateTime->format('w'); ?></strong><br> |
結果は
・l 曜日。フルスペル形式。(Sunday~Saturday):Monday
・w 曜日。数値。(0(日曜) から 6(土曜)):1
となります。
現在(now)の 時 取得
date() で 時 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 | ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo date('H'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo date('h'); ?></strong><br> |
結果は
・h 12時間単位。先頭ゼロあり。(01~12):01
となります。
DateTimeクラス で 時 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 3 | <?php $objDateTime = new DateTime(); ?> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo $objDateTime->format('H'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo $objDateTime->format('h'); ?></strong><br> |
結果は
・h 12時間単位。先頭ゼロあり。(01~12):01
となります。
現在(now)の 分 取得
date() で 分 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 | ・i 先頭ゼロあり(00~59)。:<strong><?php echo date('i'); ?></strong><br> |
結果は
となります。
DateTimeクラス で 分 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 | <?php $objDateTime = new DateTime(); ?> ・i 先頭ゼロあり(00~59)。:<strong><?php echo $objDateTime->format('i'); ?></strong><br> |
結果は
となります。
現在(now)の 秒 取得
date() で 秒 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 | ・s 先頭ゼロあり(00~59)。:<strong><?php echo date('s'); ?></strong><br> |
結果は
となります。
DateTimeクラス で 秒 取得
実行日時 2020-06-22 13:34:11 月曜日 の場合
1 2 | <?php $objDateTime = new DateTime(); ?> ・s 先頭ゼロあり(00~59)。: <strong><?php echo $objDateTime->format('s'); ?></strong><br> |
結果は
となります。
サンプルコード
date()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <h3>本日の日付 書式:YYYY-MM-DD 年4桁 月先頭に0付く 日先頭に0付く</h3> ・<strong><?php echo date('Y-m-d'); ?></strong> <br><br> <h3>本日の日付 書式:YY-M-D 年下2桁 月先頭に0なし 日先頭に0なし</h3> ・<strong><?php echo date('y-n-j'); ?></strong> <br><br> <h3>本日の年</h3> ・Y 年。4 桁の数字。(1999 や 2019):<strong><?php echo date('Y'); ?></strong><br> ・y 年。2 桁の数字。(99 や 19):<strong><?php echo date('y'); ?></strong><br> <h3>本日の月</h3> ・F 月。フルスペルの文字。(January~December):<strong><?php echo date('F'); ?></strong><br> ・m 月。数字。先頭にゼロをつける。(01~12):<strong><?php echo date('m'); ?></strong><br> ・M 月。3 文字形式(Jan~Dec):<strong><?php echo date('M'); ?></strong><br> ・n 月。数字。先頭にゼロをつけない。(1~12):<strong><?php echo date('n'); ?></strong><br> ・t 指定した月の日数。(28~31):<strong><?php echo date('t'); ?></strong><br> <h3>本日の日</h3> ・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):<strong><?php echo date('d'); ?></strong><br> ・j 日。先頭にゼロをつけない。(1~31):<strong><?php echo date('j'); ?></strong><br> <h3>本日の曜日</h3> ・D 曜日。3文字のテキスト形式。(Mon~Sun):<strong><?php echo date('D'); ?></strong><br> ・l 曜日。フルスペル形式。(Sunday~Saturday):<strong><?php echo date('l'); ?></strong><br> ・w 曜日。数値。(0(日曜) から 6(土曜)):<strong><?php echo date('w'); ?></strong><br> <h3>現在の時</h3> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo date('H'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo date('h'); ?></strong><br> <h3>現在の分</h3> ・i 先頭ゼロあり(00~59)。:<strong><?php echo date('i'); ?></strong><br> <h3>現在の秒</h3> ・s 先頭ゼロあり(00~59)。:<strong><?php echo date('s'); ?></strong><br> |
・2020-06-22
本日の日付 書式:YY-M-D 年下2桁 月先頭に0なし 日先頭に0なし
・20-6-22
本日の年
・Y 年。4 桁の数字。(1999 や 2019):2020
・y 年。2 桁の数字。(99 や 19):20
本日の月
・F 月。フルスペルの文字。(January~December):June
・m 月。数字。先頭にゼロをつける。(01~12):06
・M 月。3 文字形式(Jan~Dec):Jun
・n 月。数字。先頭にゼロをつけない。(1~12):6
・t 指定した月の日数。(28~31):30
本日の日
・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):22
・j 日。先頭にゼロをつけない。(1~31):22
本日の曜日
・D 曜日。3文字のテキスト形式。(Mon~Sun):Mon
・l 曜日。フルスペル形式。(Sunday~Saturday):Monday
・w 曜日。数値。(0(日曜) から 6(土曜)):1
現在の時
・H 24時間単位。先頭ゼロあり。(00~23):13
・h 12時間単位。先頭ゼロあり。(01~12):01
現在の分
・i 先頭ゼロあり(00~59)。:50
現在の秒
・s 先頭ゼロあり(00~59)。:08
DataTimeクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php $objDateTime = new DateTime(); ?> <h3>本日の日付 書式:YYYY-MM-DD 年4桁 月先頭に0付く 日先頭に0付く</h3> ・<strong><?php echo $objDateTime->format('Y-m-d'); ?></strong> <br><br> <h3>本日の日付 書式:YY-M-D 年下2桁 月先頭に0なし 日先頭に0なし</h3> ・<strong><?php echo $objDateTime->format('y-n-j'); ?></strong> <br><br> <h3>本日の年</h3> ・Y 年。4 桁の数字。(1999 や 2019):<strong><?php echo $objDateTime->format('Y'); ?></strong><br> ・y 年。2 桁の数字。(99 や 19):<strong><?php echo $objDateTime->format('y'); ?></strong><br> <h3>本日の月</h3> ・F 月。フルスペルの文字。(January~December):<strong><?php echo $objDateTime->format('F'); ?></strong><br> ・m 月。数字。先頭にゼロをつける。(01~12):<strong><?php echo $objDateTime->format('m'); ?></strong><br> ・M 月。3 文字形式(Jan~Dec):<strong><?php echo $objDateTime->format('M'); ?></strong><br> ・n 月。数字。先頭にゼロをつけない。(1~12):<strong><?php echo $objDateTime->format('n'); ?></strong><br> ・t 指定した月の日数。(28~31):<strong><?php echo $objDateTime->format('t'); ?></strong><br> <h3>本日の日</h3> ・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):<strong><?php echo $objDateTime->format('d'); ?></strong><br> ・j 日。先頭にゼロをつけない。(1~31):<strong><?php echo $objDateTime->format('j'); ?></strong><br> <h3>本日の曜日</h3> ・D 曜日。3文字のテキスト形式。(Mon~Sun):<strong><?php echo $objDateTime->format('D'); ?></strong><br> ・l 曜日。フルスペル形式。(Sunday~Saturday):<strong><?php echo $objDateTime->format('l'); ?></strong><br> ・w 曜日。数値。(0(日曜) から 6(土曜)):<strong><?php echo $objDateTime->format('w'); ?></strong><br> <h3>現在の時</h3> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo $objDateTime->format('H'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo $objDateTime->format('h'); ?></strong><br> <h3>現在の分</h3> ・i 先頭ゼロあり(00~59)。:<strong><?php echo $objDateTime->format('i'); ?></strong><br> <h3>現在の秒</h3> ・s 先頭ゼロあり(00~59)。: <strong><?php echo $objDateTime->format('s'); ?></strong><br> |
・2020-06-22
本日の日付 書式:YY-M-D 年下2桁 月先頭に0なし 日先頭に0なし
・20-6-22
本日の年
・Y 年。4 桁の数字。(1999 や 2019):2020
・y 年。2 桁の数字。(99 や 19):20
本日の月
・F 月。フルスペルの文字。(January~December):June
・m 月。数字。先頭にゼロをつける。(01~12):06
・M 月。3 文字形式(Jan~Dec):Jun
・n 月。数字。先頭にゼロをつけない。(1~12):6
・t 指定した月の日数。(28~31):30
本日の日
・d 日。二桁の数字(先頭にゼロがつく場合も)(01~31):22
・j 日。先頭にゼロをつけない。(1~31):22
本日の曜日
・D 曜日。3文字のテキスト形式。(Mon~Sun):Mon
・l 曜日。フルスペル形式。(Sunday~Saturday):Monday
・w 曜日。数値。(0(日曜) から 6(土曜)):1
現在の時
・H 24時間単位。先頭ゼロあり。(00~23):13
・h 12時間単位。先頭ゼロあり。(01~12):01
現在の分
・i 先頭ゼロあり(00~59)。:50
現在の秒
・s 先頭ゼロあり(00~59)。: 08
タグ(=記事関連ワード)
日付
最終更新日:2020年06月22日