本記事ではPHPで日付フォーマットを調整する方法を解説します。
日付フォーマットの調整にはdate関数を使いますが、date関数は初心者には仕様が難しく感じられる場合も多くあります。
今回はdate関数の使い方について初心者にも分かるように解説していきます。
date関数とは?
date関数はPHPで使える関数の1つです。
date関数を使うことによって、日付フォーマットを調整することが可能です。
現在の日付を表示することもできますし、特定(昨日や明日、1週間後など)の日付を表示することもできます。
たとえば、Webサイトでキャンペーンを行いたく、キャンペーンの締め切りを1週間後に設定したい場合、date関数を使って1週間後の日付を表示する、ということが可能です。
date関数はPHPの関数の中でも利用頻度が高いと言えるでしょう。
PHPで日付フォーマットを調整する方法
PHPで日付フォーマットを調整する方法を解説します。
以下の手順に従って解説していきましょう。
- 日付を表示する
- 日時を表示する
- Unix時間を表示する
- 特定の日付を表示する
1)日付を表示する
date関数を使って日付を表示する方法をみていきましょう。
○コード例
<?php
echo date("Y年m月d日\n");
echo date("Y/m/d\n");
echo date("Y-m-d\n");
?>
○実行結果
dateの引数に日付のフォーマットを指定します。
するとそのフォーマット通りに現在の日付を表示することができます。
「/」や「-」だけでなく「年」など日本語表記も使うことが可能です。
これがdate関数の基本的な使い方となります。
2)日時を表示する
date関数は日付だけでなく日時も表示することが可能です。
○コード例
<?php
echo date("Y年m月d日 H時i分s秒\n");
echo date("Y/m/d H/i/s\n");
echo date("Y-m-d H:i:s\n");
?>
○実行結果
date関数で何時何分何秒まで表示させることが可能です。
さきほど同様にフォーマットを指定することで、そのフォーマット通りに日時を表示させることができます。
3)Unix時間を表示する
Unix時間とはコンピュータシステム上の時刻表現のことです。
Unix時間を基準にしてシステム動作を行うことは多くあります。
Unix時間を表示させたい場合、strtotime関数を使います。
○コード例
<?php
echo strtotime("now");
?>
○実行結果
上記ではstrtotime関数に「now」を指定することで、現在のUnix時間を表示させています。
○コード例
<?php
echo strtotime("+1 day"),"\n";
echo strtotime("+1 week"),"\n";
?>
○実行結果
上記ではstrtotime関数によって明日と1週間後のUnix時間を表示させています。
また、下記のように特定日時のUnix時間を表示させることが可能です。
○コード例
<?php
echo strtotime("2020-01-01");
?>
○実行結果
4)特定の日付を表示する
なぜさきほどUnix時間の表示方法を説明したかというと、date関数とstrtotime関数を組み合わせることで、指定した特定日付のフォーマットを調整することができるためです。
○コード例
<?php
echo date("Y年m月d日", strtotime("2020-01-01")),"\n";
echo date("Y/m/d", strtotime("2020-01-01")),"\n";
?>
○実行結果
上記の例ではstrtotime関数によって特定日付をまずUnix時間に変換しています。
そして、date関数によって決められたフォーマットに調整しています。
このように、strtotime関数と組み合わせることで特定の日付を表示することが可能です。
DateTimeで日付フォーマットを調整するには?
ここまでdate関数で日付を表示する方法を解説してきました。
実はPHPにはdate関数とは別に、DateTimeというクラスを使って日付を表示することができます。
○コード例
<?php
$date = new DateTime("2020-01-01 10:10:10");
echo $date->format("Y年m月d日 H時i分s秒");
?>
○実行結果
上記の例では、DateTimeというクラスが使われています。
DateTimeクラスにはformatメソッドがあります。
クラスのメソッドを呼び出したい場合、まずクラスからインスタンスを作る(newする)必要があります。
その後「->」という記号を使ってメソッドを呼び出します。
formatメソッドは指定された日付のフォーマットを変更することが可能です。
このように、クラスの使い方を理解しているなら、こちらのやり方でも日付を表示させることができます。
日本語の曜日を表示させるには?
最後に応用編として、日本語の曜日を表示させる方法をみていきましょう。
PHPのdate関数は「年」や「月」を表示することはできるものの、「月」や「火」といった日本語の曜日を表示させることができません。
日本語の曜日を表示させたいなら、下記のようにこちらで各曜日の文字を用意する必要があります。
○コード例
<?php
$week = array("日","月","火","水","木","金","土");
echo $week[date("w")],"\n";
echo $week[date("w", strtotime("2020-01-01"))],"\n";
?>
○実行結果
上記のコードでは$week配列に曜日をすべて格納しています。
date関数によって曜日の番号を取得し、その番号に対応した曜日を表示しています。
このようにすることで、日本語の曜日を表示することが可能です。
まとめ
本記事ではPHPで日付フォーマットを調整する方法について解説しました。
PHPはWebアプリ開発に多く使われる言語のため、サイトに表示する日付データを生成するためにdate関数は多く使われます。
この機会にdate関数の使い方をマスターしておくようにしましょう。