PHP基本編7:PHPの日付フォーマットを調整するには?指定日時を変換する方法も解説!

PHP入門

本記事ではPHPで日付フォーマットを調整する方法を解説します。

日付フォーマットの調整にはdate関数を使いますが、date関数は初心者には仕様が難しく感じられる場合も多くあります。

今回はdate関数の使い方について初心者にも分かるように解説していきます。

date関数とは?

date関数はPHPで使える関数の1つです。

date関数を使うことによって、日付フォーマットを調整することが可能です。

現在の日付を表示することもできますし、特定(昨日や明日、1週間後など)の日付を表示することもできます。

たとえば、Webサイトでキャンペーンを行いたく、キャンペーンの締め切りを1週間後に設定したい場合、date関数を使って1週間後の日付を表示する、ということが可能です。

date関数はPHPの関数の中でも利用頻度が高いと言えるでしょう。

PHPで日付フォーマットを調整する方法

PHPで日付フォーマットを調整する方法を解説します。

以下の手順に従って解説していきましょう。

  1. 日付を表示する
  2. 日時を表示する
  3. Unix時間を表示する
  4. 特定の日付を表示する

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関数の使い方をマスターしておくようにしましょう。

❤内容は役に立ちましたか?皆さまのご意見が励みになります☺
YesNo
無料でスキルを学んでからIT業界に転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてIT業界に転職したいなぁ。でも、業界未経験だから、なんか敷居が高そう、と思っている方へ。

これからIT業界への転身を目指すあなたに、無料でスキルアップできて、平均で年収は90万円もアップできるんです。

PHP入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

タイトルとURLをコピーしました