B360 日付/時刻

PHPで現在の時刻を表示する場合は、Date関数を用います。今回は、日付/時刻の扱い方について紹介します。

日付/時刻の取得と表示

date関数

date関数を用いることで現在の日付取得を行うことができます。

PHP
echo date("Y/m/d\n"); //現在の日時の取得
echo date("Y/m/d H:i:s\n"); //現在の日時時間を取得
echo date("Y/m/d - M (D) H:i:s\n"); //現在の日時、時刻、曜日を取得

出力結果

PHP
2023/02/25
2023/02/25 09:21:40
2023/02/25 - Feb (Sat) 09:21:40
//上記は2023年2月25日(土)9時21分40秒に行われた処理結果です。

DateTimeクラス

DateTimeクラスとformatメソッドを使用することでも日付取得を行うことができます。

PHP
$date = new DateTime('now');
echo $date->format('Y年m月d日 H時i分s秒');

出力結果

PHP
2023年02月25日 09時21分40秒
//上記は2023年2月25日(土)9時21分40秒に行われた処理結果です。

日時の計算

strtotime()関数 や mktime()関数 などを用いることで日時や時間の計算を行うことができます。

strtotime()関数

strtotime()関数を使用すると2つの日付の差を計算することができます。日付をタイムスタンプに変換し、それらの差を86400で割ると日数が出力されます。

PHP
$date1 = '2023-02-25';
$date2 = '2022-01-01';
echo ((strtotime($date2) - strtotime($date1)) / 86400).'';

出力結果

PHP
-420

mktime()関数

mktime()関数も2つの日付の差を計算することができます。日付をタイムスタンプに変換し、時、分、秒、月、日、年 と日時の内容を指定します。日付のみ指定する場合は、時/分/秒 を 0 にします。

PHP
//Day1
$date1Y = '2023';
$date1M = '02';
$date1D = '25';

//Day2
$date2Y = '2023';
$date2M = '03';
$date2D = '01';

//計算
echo ((mktime(0,0,0,$date2M,$date2D,$date2Y) - mktime(0,0,0,$date1M,$date1D,$date1Y)) / 86400).'';

出力

PHP
4

エンジニアからのアドバイス

日付の取得や計算方法の書き方を丸暗記する必要はありません。手元で挙動を確認し、必要な際に調べながらできるように知識の整理はしておきましょう。

---