PHPで日付を取得するには「date関数、strtotime関数」を使います。
- date関数の使い方が知りたい。
- 今日の日付を取得したい。
- 指定した日付を取得したい。
- 「yyyy年mm月dd日」の形式で表示するには?
このような内容について解説します。
私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
少しでも分かりやすく解説していきたいと思います。
それでは行きましょう!
目次
date関数とは
date(フォーマット文字) date(フォーマット文字, タイムスタンプ)
引数 | 第1引数:日付、時間のフォーマット文字を指定します。(string) 「Y年m月d日」のように「Y, m, d, H, i, s」を使って指定が可能。 |
---|---|
第2引数:UNIXタイムスタンプを指定します。(int) 基本的にstrtotime関数を併用して日付指定します。※省略可 省略すると現在日時が取得できます。 |
|
戻り値 | 指定フォーマット後の日付が返ります。(string) |
date関数の使い方
次のソースコードでは、
今日の日付を「yyyy/mm/dd」と「yyyy年mm月dd日」形式で表示しています。
<?php // 今日を「yyyy/mm/dd」形式で表示 echo date('Y/m/d') . '<br>'; // 今日を「yyyy年mm月dd日」形式で表示 echo date('Y年m月d日'); ?>
実行結果:

第1引数だけ指定しているため、今日の日付が表示できました。
次に日付を指定して表示してみます。
指定日を表示する(絶対日付)
指定した日付を表示するには、strtotime関数と併用してdate関数の第2引数に指定します。
strtotime関数はUNIX時間に変換する関数です。
「2020年12月10日」を表示させるソースコードを書いてみます。
<?php // 日付を指定 $st = strtotime('2020/12/10'); // 「yyyy年mm月dd日」形式で表示 echo date('Y年m月d日', $st); ?>
実行結果:

指定した日付「2020年12月10日」が表示できました。
3日後を表示する(相対日付)
3日後の日付を表示してみます。
先ほどのソースコードでstrtotime関数に「+3 day」を指定すると、3日後の日付が表示されます。
<?php // 3日後を指定 $st = strtotime('+3 day'); // 「yyyy年mm月dd日」形式で表示 echo date('Y年m月d日', $st); ?>
実行結果:

3日後の日付が表示されました。
もし3日前であれば「-3 day」、1か月後は「1 month」を指定できます。
「+3 day」部分は定数化する
相対日付の指定は、strtotime関数に「year、month、day」など文字列をハードコーディングすることになります。
バグを引き起こす原因にもなりかねますので、
実際の開発では「+3 day」部分をまとめて定数化しておいた方が良いでしょう。
指定日を簡単にする独自関数を作ってみる
毎回、date関数とstrtotime関数を使うと、ソースコードの可読性が落ちます。
使用しているフレームワークに用意されていなければ、独自に日付を簡単取得できる関数を用意する方が良いでしょう。
次のソースコードでは、「yyyy年mm月dd日」形式を返す「getDateJp()」を独自に作ってみました。
<?php // 指定した日付「yyyy年mm月dd日」形式で取得する // 引数を省略したら現在の日付を返す function getDateJp($strDate = '') { $format = 'Y年m月d日'; if ($strDate == '') { return date($format); } return date($format, strtotime($strDate)); } // 呼び出し側 echo getDateJp('2020/12/10'); ?>
これらの関数をプロジェクトの共通処理として1箇所にまとめておくと、
長々と書かなくてソースコード可読性がよくなります。
ですので、日付取得する独自関数を作りましょう。
まとめ
PHPのdate関数について解説しました。
- date関数とは(フォーマット文字を指定)
- date関数の使い方(今日を表示)
- 指定日を表示する(絶対日付、strtotime関数にYmdを指定)
- 3日後を表示する(相対日付、strtotime関数に+3 dayを指定、定数化する)
- 指定日を簡単にする独自関数を作ってみる(可読性が良くなる)
date関数は頻繁に使用する関数ですので、使い方をしっかりと身につけましょう!