PHPの現在の日付の取得と日付の計算、簡単解説でもう悩まない!

PHPで日付を取得したい場合はとても多いと思います。

特に現在の日付を取得する機会も多いです。

今回は、PHPの現在の日付の取得方法について以下の方法についてお話したいと思います。

【基本】現在の日付を取得
【基本】日付の書式について
【応用】現在の日付から計算

わかりやすく解説しますので、是非最後まで読んでください。

目次

現在の日付の取得方法

現在の日付を取得する方法もいくつかあります。

今回は簡単な2つの方法を紹介したいと思います。

表示結果は同じなので、お好きな方法を使用してください。

date関数を使用する

1つ目の方法はdate関数を使用する方法です。

time関数と間違えやすいので注意です。

PHPのtime関数は現在のタイムスタンプを返す関数です。

タイムスタンプについて知りたい方は以下をご覧ください。

以下がサンプルコード(datetest.php)です。

<?php
echo "現在の時刻は ". date("Y/m/d H:i");

以下がブラウザでの表示結果です。

date関数は引数の中に日付フォーマットを指定して使用します。

※日付フォーマットにどんな設定ができるのかは次章で説明します。

DateTimeクラスを使用する

2つ目の方法はDateTimeクラスを使用します。

以下がサンプルコード(timetest.php)です。

<?php
$date_time = new DateTime(); // ①
$date_time_disp = $date_time->format("Y-m-d H:i"); // ②
echo "現在の時刻は ". $date_time_disp;

続いて、ソースの解説です。

①DateTimeクラスからオブジェクトを作成します。

②formatを使って、出力したいフォーマットを指定します。

※日付フォーマットにどんな設定ができるのかは次章で説明します。

以下がブラウザでの表示結果です。

date関数と同じ結果になりました。

日付の書式を整える

この章では、前章で使用した日付フォーマットについて解説します。

前章では以下のように日付フォーマットを使用しました。

Y-m-d H:i

以下、各文字の解説です。

Y (大文字のY)西暦の4桁表示
m (小文字)月の2桁表示※1月は01と、0で埋められる
d (小文字)日の2桁表示※1日は01と、0で埋められる
H (大文字)24時間の2桁表示※1時は01と、0で埋められる
i (小文字)分※1分は01と、0で埋められる

-(ハイフン)や:(コロン)などはそのまま出力されます。

他に使う代表的なフォーマットは以下です。

y (小文字)2桁の西暦※2019は19となる
n (小文字)0で埋めなしの月表示※1月は1月、12月は12月
j (小文字)0で埋めなしの日表示※1日は1日、12日は12日
G (大文字)0で埋めなしの24時間表示※1時は1時、12時は12時
s (小文字)秒※1秒などは01と、0で埋められる

桁数も自由に調整できますが、分と秒は1桁表示はできません。

年月日は表示させる機会が多いと思いますので、日付フォーマットは覚えておきましょう。

現在の日付から日付を計算

最後に現在の日付から、何日前とか何日後などの計算方法をご紹介します。

strtotime関数を使います。

以下のように指定すると、現在から1日前のタイムスタンプを返します。

strtotime("-1 day")

ただ、これではタイムスタンプ=数字が返ってくるだけなので、日付に変換させます。

変換させるには、date関数と日付フォーマットを使用します。

以下がサンプルコード(strtotimetest.php)です。

<?php
echo "現在の時刻は ". date("Y-m-d H:i");
echo "<br />";
echo "現在から1日前の時刻は ". date("Y-m-d H:i", strtotime("-1 day"));

実行結果は以下です。

1日前の日時を表示することができました。

【-1】の部分を+にすると1日後になります。

【day】の部分は日付以外に以下の設定が可能です。

  • 秒 (second)
  • 分 (minute)
  • 時間 (hour)
  • 週 (week)
  • 月 (month)
  • 年 (year)

簡単に日付の計算をする事ができます。

まとめ

今日はPHPで現在の日付を取得する方法を説明しました。

今回紹介した方法以外にも日付の取得方法は存在します。

慣れてきたら他の方法も試してみると勉強になると思います。

それでは、また。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次