PHPではシステムの日付を取得したり、「yyyy/m/d、yyyy-m-d、 yyyy年m月d日」などの日付の書式を設定するdate関数があります。
この記事では、次のような基礎的な使い方や、
- date関数とは
- date関数の使い方
- strtotime関数の使い方
次のように応用的な使い方を解説していきます。
- 日付を比較する方法
- 曜日を取得する方法
今回は、date関数について色々な使い方について、わかりやすく解説していきます。
この機会にしっかりと身につけましょう!
目次
date関数とは
date関数は、指定したフォーマットの日付を表示するための関数です。
date(フォーマット) date(フォーマット, タイムスタンプ)
引数 | 第1引数:フォーマット(string) |
---|---|
第2引数:タイムスタンプ(int)※省略可 | |
戻り値 | 指定フォーマットの日時(string) |
date関数の使い方
date関数の使い方です。
※第1引数しか指定していないので、現在日時で表示されます。
<?php echo date('Y-m-d'). '<br>'; echo date('Y/m/d H:i:s'). '<br>'; echo date('Y年m月d日 H時i分s秒'). '<br>'; ?>
出力結果:

date関数フォーマット一覧
date関数の第1引数に指定するフォーマットの一覧です。
よく使いそうなフォーマット文字を選びました。
フォーマット文字 | 説明 | 例 |
---|---|---|
Y | 年(西暦4桁の数字) | 2019 |
y | 年(西暦2桁の数字) | 19 |
m | 月(先頭にゼロを付ける) | 08 |
n | 月(先頭にゼロを付けない) | 8 |
d | 日(先頭にゼロを付ける) | 01 |
j | 日(先頭にゼロを付けない) | 1 |
H | 時(24時間単位。先頭にゼロを付ける) | 15 |
i | 分(先頭にゼロを付ける) | 09 |
s | 秒(先頭にゼロを付ける) | 05 |
t | 指定した月の日数(28 ~ 31) | 31 |
w | 曜日(0:日 ~ 6:土) | 1(月) |
strtotime関数とは
strtotime関数は、日付指定と日付を比較するための関数です。
戻り値はUnixタイムスタンプですので、値だけ見てもよくわからないと思います。
date関数と組み合わせて使用します。
strtotime(日時) strtotime(日時, タイムスタンプ)
引数 | 第1引数:日時(string) |
---|---|
第2引数:タイムスタンプ(int)※省略可 | |
戻り値 | タイムスタンプ(int) |
絶対的な日付指定
strtotime関数と一緒に使用すると、指定日時の日付を出力できます。
<?php // 日時を指定 $st = strtotime('2020-08-01 10:10:10'); echo date('Y-m-d', $st). '<br>'; echo date('Y/m/d H:i:s', $st). '<br>'; echo date('Y年m月d日 H時i分s秒', $st). '<br>'; ?>
出力結果:

相対的な日付指定
1日後、2か月後などを指定して日時を相対的に取得することができます。
「next Sunday」などの指定の場合は、時間部分が「00:00:00」となります。
<?php // 現在の日時 echo date('Y/m/d H:i:s'). '<br>'; // 1日前を取得 echo date('Y/m/d H:i:s', strtotime('-1 day')). '<br>'; // 2か月後を取得 echo date('Y/m/d H:i:s', strtotime('+2 month')). '<br>'; // 次の日曜日 echo date('Y/m/d H:i:s', strtotime('next Sunday')). '<br>'; // 指定日の次の木曜日 echo date('Y/m/d H:i:s', strtotime('next Thursday', strtotime('2020-08-01'))). '<br>'; ?>
出力結果:

日付を比較する方法
日付を比較するには、strtotime関数の値に変換して比較をします。
<?php $target_day = "2020/08/01"; $today = date("Y/m/d"); if (strtotime($target_day) === strtotime($today)) { echo "今日です"; } else if (strtotime($today) > strtotime($target_day)) { echo "過去です"; } else { echo "未来です"; } ?>
日付から曜日を取得する方法
date関数に「w」を指定することで、曜日番号を取得できます。
日本語で表示したい場合は、日本語の曜日配列を用意する必要があります。
曜日番号は「0:日~6:土」が返ってきます。
<?php // 日本語の曜日配列 $week = ['日', '月', '火', '水', '木', '金', '土']; // 「2020-09-28」の曜日番号を取得 $d = date('w', strtotime('2020-09-28')); echo $week[$d]. '曜日です'; ?>
出力結果:

まとめ
いかがでしょうか。
PHPの日付関数について、次の内容を解説しました。
- date関数の使い方、指定フォーマット一覧
- strtotime関数で日付を指定する方法
- 日付を比較する方法
- 日付から曜日を取得する方法
PHPでは日付を処理する色々な機能がありますので、ぜひ覚えましょう!
PHPではDateTimeクラスを使って日付操作する方法などもありますが、今回は割愛します。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。