PHPのdate関数の使い方

投稿日: 作成:   更新:

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週間の無料体験があります。
    気軽にスクールを体験したい方向けです。