【PHP】日付や時刻をフォーマット(format)する方法を解説

・PHPで日付や時刻をフォーマットする方法を知りたい・・・。
・date関数やDateTimeクラスの使い方がわからない。

PHPでは、date関数やDateTimeクラス、strtotime関数を使って日付や時刻をフォーマットすることができますが、使い方がわからない人も多いでしょう。

そこでこの記事では、date関数やDateTimeクラス、strtotime関数を使って日付をフォーマットする方法について詳しく解説します!

この記事を読めば、PHPで日付をフォーマットする方法がわかり、date関数やDateTimeクラスの使い方も理解することができるでしょう。

PHPで日付をフォーマットしたいけどやり方がわからない、date関数やDateTimeクラスの使い方がよくわからない人は、ぜひ最後までご覧ください。

date関数で日付や時刻をフォーマットする方法

まず、date関数を用いて日付や時刻をフォーマットする方法について学んでいきます。

date関数について知らない人は、しっかりと理解していきましょう。

date関数とは?

date関数とは、ローカルの日付や時刻を書式化するための関数です。

date関数は、上記のように第1引数と第2引数を指定して、日付や時刻を取得します。

第1引数のフォーマット文字列には、文字列型日付のフォーマットを指定します。

第2引数のタイムスタンプには、1970年1月1日 00:00:00 UTCからの経過秒数であるUnixタイムスタンプを指定します。

ちなみに、第2引数のタイムスタンプはオプションなので、省略することができ、省略した際は現在の時刻が取得されます。

date関数の使い方

では、date関数の具体的な使い方について解説していきます。

実際のコードで、date関数の使い方を見ていきましょう。

今回は、date関数に「Y年m月d日」と指定してみます。

この「Y, m, d」はフォーマット文字と呼ばれるもので、日付や時刻を取得するための文字になります。

  • ・Y:西暦(4桁) ※2021年
  • ・y:西暦(下2桁) ※21年
  • ・m:月(0あり) ※08月
  • ・n:月(0なし) ※8月
  • ・d:日
  • ・H:時間(24時間単位)
  • ・h:時間(12時間単位)
  • ・i:分
  • ・s:秒
  • ・w:曜日(0〜6) ※0は日曜日、6は土曜日
  • ・l:曜日(Sunday〜Saturday)

フォーマット文字は、上記の種類があり、それぞれの文字で年月日や時分秒、曜日などを取得することができます。

先ほどのdate関数の結果を表示すると、次のようになるでしょう。

結果は現在の日付が表示されていますね。

フォーマット文字を増やせば、以下のように「秒」まで取得することができます。

このように、date関数ではフォーマット文字を指定することで、簡単に日付や時刻をフォーマットすることができます。

なので、使い方をしっかり理解しておきましょう。

date関数について、さらに詳しく知りたい人は以下をご覧ください。

【PHP入門】よくわかるdate関数!
【PHP入門】よくわかるdate関数!
最近庭の雑草が元気すぎて、草むしりが追いつかないライカです。 今回は 「日付を表示させるためにはdate関数を ...

strtotime関数で日付や時刻をフォーマットする方法

続いて、strtotime関数で日付や時刻をフォーマットする方法について解説していきます。

strtotime関数について、まだ知らない人はしっかりと理解していきましょう。

strtotime関数とは?

strtotime関数とは、引数で指定された文字列をタイムスタンプに変換する関数です。

例えば、上記のように指定した日時をstrtotime関数に指定すると、指定日時のUnixタイムスタンプを取得することができます。

この数字は1970年1月1日からの経過秒数を表しており、strtotime関数の引数に「now」と指定すれば、現在のUnixタイムスタンプを取得することが可能です。

strtotime関数の使い方

では、strtotime関数で日付や時刻をフォーマットするための使い方を見ていきましょう。

strtotime関数は、date関数の第2引数として使われることが多いです。

なぜなら、date関数で日付を指定してフォーマットするには、第2引数にタイムスタンプを指定する必要があります。

そして、そのタイムスタンプを指定するには、strtotime関数で日付をタイムスタンプに変換しなければならないからです。

では、実際にどのように書くのか、コードで確認していきましょう。

まず、指定した日付を変数「$date」に代入します。

そして、date関数の第1引数には日付の文字列(Y年m月d日)、第2引数にはstrtotime関数で$dateをタイムスタンプに変換します。

すると、結果は次のようになるでしょう。

指定した日付がきちんと表示されていますね。

このように、strtotime関数を使えば、指定した文字列をタイムスタンプに変換し、日付や時刻をフォーマットすることができます。

strtotime関数について、さらに詳しく知りたい人は、以下をご覧ください。

【PHP入門】よくわかるstrtotime関数!
【PHP入門】よくわかるstrtotime関数!
最近在宅ワーク続きで、体が鈍ってきてるライカです。 一週間後や明日の日付を出したいけれど出し方がわからないとい ...

DateTimeクラスで日付や時刻をフォーマットする方法

次に、DateTimeクラスで日付や時刻をフォーマットする方法について解説していきます。

先ほど解説したdateとstrtotimeは関数でしたが、DateTimeはクラスになるので、そこの違いも含めて理解していきましょう。

DateTimeクラスとは?

DateTimeクラスとは、日付をオブジェクトとして扱うクラスです。

DateTimeクラスで日付や時刻をフォーマットする際は、formatメソッドを使用します。

作成したDateTimeクラスのオブジェクトにformatメソッドを指定することで、日付を取得します。

DateTimeクラスのインスタンス生成時に、引数に日付のフォーマットを指定すると、フォーマットされた日付が取得されます。

逆に、引数に何も指定しなければ、現在の日付が取得されます。

DateTimeクラスの使い方

では、実際にDateTimeクラスの使い方について見ていきましょう。

コードの書き方は、次のようになります。

先ほど解説したコードと同じように、DateTimeクラスのオブジェクトにformatメソッドを指定して日付を取得します。

今回は、引数を指定していないので、現在の日付が取得されるはずです。

echoで結果を表示すると、以下のようになるでしょう。

現在の日付と時刻が表示されていますね。

これで、DateTimeクラスによって日付や時刻をフォーマットすることができるとわかりました。

では、今度は引数に日付を指定してみましょう。

今回は、引数に「2021-02-14 10:00:00」と指定しました。

formatメソッドでは、フォーマットされた日付を取得するので、結果が「2021年02月14日 10時00分00秒」となっていますね。

このように、DateTimeクラスを使って日付や時刻をフォーマットすることができます。

date関数やstrtotime関数と合わせて使い方を覚えておくといいでしょう。

DateTimeクラスについて、さらに詳しく知りたい人は、以下をご覧ください。

【PHP入門】よくわかるDateTimeクラス
【PHP入門】よくわかるDateTimeクラス
最近、なめらかプリン作りにハマっているライカです。 PHPで日付を出したいけど、DateTimeクラスってなん ...

まとめ

今回は、PHPでdate関数やDateTimeクラス、strtotime関数を使って日付や時刻をフォーマットする方法について解説しました。

これらの関数やクラスでは、フォーマット文字を指定することで、日付や時刻、曜日などを簡単に取得することができます。

また、Unixタイムスタンプを使用することで、1970年1月1日 00:00:00 UTCからの経過秒数を取得することも可能です。

なので、使い方を覚えておくといいでしょう。

この記事がPHPの学習に役立つと幸いです。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?