【PHP入門】date関数で日付をフォーマットする方法(format)

image (1)
書いた人 ヤマシタ

こんにちは!フリーエンジニアのヤマシタです。

PHPにはdate関数で日付をさまざまなフォーマットに変換することができます。

この記事では、

・日付/日時をフォーマットする方法
・指定した日時でフォーマットする方法(strtotime)

という基本的な内容から、

・日時をチェックする方法(strptime,checkdate)
・曜日を取得する方法

などの応用的な使い方に関しても解説していきます。

今回はdate関数で日付をフォーマットする方法について、わかりやすく解説します!

日付/日時をフォーマット

date関数とは

date関数はローカルの日付や時刻を書式化する関数で、日付を扱う処理でよく使用されます。

date関数で日付のフォーマットを指定する場合は、以下のように記述します。

書き方:

引数:
引数のフォーマット文字には文字列型日付のフォーマットを指定します。
タイムスタンプは省略した場合は現在の時刻が取得できます。

指定できるフォーマット文字(主に生年月日時分秒):
Y:年(西暦の4桁)・・・例)2017
y:年(西暦の2桁)・・・例)17
M:月(2桁の月)・・・例)08
n:月(1桁で先頭に0を付けいない)・・・例)8
d:日(2桁の日付)・・・例)21
H:時間(2桁の24時間単位)・・・例)16
h:時間(2桁の12時間単位)・・・例)08
i:分(2桁の分)・・・例)20
s:秒(2桁の秒)・・・例)30
t:指定した月の日数(28~31)・・・例)31
w:曜日(0:日 ~ 6:土)・・・例)2(火)

返り値:
書式化された日付文字列を返します。
第二引数のタイムスタンプは数字以外が指定された場合はFALSEを返し、ワーニングエラーが発生します。

日付/日時をフォーマットする

以下にdate関数を使用して、日付や日時のフォーマット指定する簡単なサンプルプログラムを紹介します。

サンプルプログラム

実行結果:

日付や日時のフォーマット指定については、date関数以外でもdatetime関数、date_format関数でも同様に指定することができます。

datetimeとdate_format関数を使用したフォーマット設定方法については、以下の記事で詳しく解説しています!


日付/日時をミリ秒単位でフォーマットする(microtime)

日付をミリ秒単位で取得するためには、micortime関数を使用します。

書き方:

引数:
TRUEを指定すると、floatの値を返します。

返り値:
現在のUnixタイムスタンプをマイクロ秒単位まで返します。

サンプルプログラム

実行結果:

microtime関数を使用すれば、このようにミリ秒単位で日時が取得できることがわかりますね!

指定した日時でフォーマット

strtotime関数とは

指定した日時でフォーマットするには、date関数の第二引数にstrtotime関数を使用して、日付文字列をUnixタイムスタンプに変換します。
Unixタイムスタンプとは、 1970 年 1 月 1 日 00:00:00 UTC からの経過秒数を指します)

書き方:

引数:
日付/日時の文字列

返り値:
処理が成功するとUnixタイムスタンプを返し、失敗するとFALSEを返します。

strtotime関数の使い方

以下にdate関数で引数に日付文字列を指定して、日時に変更する方法を記述します。

サンプルプログラム

実行結果:

サンプルプログラムでは文字列型の日付を設定し、strtotime関数でUnixタイムスタンプ(1970年からの通算秒)に変換した値を、date関数で指定したフォーマットで日付を設定しています。

strtotime関数の使い方については、以下の記事でも詳しく解説していますので、ぜひ参考にしてください!

日時をチェックする

ここでは、strptime関数とcheckdate関数を使用した日付のチェック方法を紹介します。

strptime関数

指定した日付の形式が正しいかチェックするには、strptime関数を使用します。

書き方:

引数:
第一引数には文字列型日付を指定します。
第二引数にはdate関数で使用されているフォーマットを指定します。

返り値:
成功した場合は配列を返し、失敗した場合はFALSEを返します。

サンプルプログラム

実行結果:

checkdate関数

指定した日付が正しいかチェックするには、checkdate関数を使用します。

書き方:

引数:
第一引数に月、第二引数に日、第三引数に年を指定します。

返り値:
指定した日付が有効な場合はTRUE、違う場合はFALSEを返します。

サンプルプログラム

実行結果:

曜日を取得する

date関数の引数に’w’を指定すれば曜日番号を取得することが可能です。

以下のように記述すれば、本日の日付から曜日番号が取得できます。

サンプルプログラム

実行結果:

曜日を日本語に変換する方法については、以下の記事で詳しく解説しています!

date関数についてもっと詳しく知りたい方へ

date関数のさまざまな使い方については、以下の記事でもまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここではdate関数を使用して、

・日付/日時をフォーマットする方法
・指定した日時でフォーマットする方法(strtotime)
・日時をチェックする方法(strptime, checkdate)
・曜日を取得する方法

などのさまざまなフォーマット指定の方法やチェック、曜日の取得方法について解説しました。

PHPに限らず、システム開発において日付のデータは作業履歴やログ・ファイル出力時など、さまざまな処理で使われる非常に重要な情報となります。

もし、date関数の使用方法を忘れてしまったら、この記事を思い出してくださいね!


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

学習者インタビュー

23歳、早稲田中退生が3ヶ月でフリーランスエンジニアになるまで
32歳ベンチャー企業元役員が起業してプログラミングを学んだ話
元ディスクユニオン店員が33歳からプログラミングを学びエンジニアになるまで
ヨガスタジオのマネージャーだった私が3ヶ月でWeb制作をマスターするためにした”たった1つ”のこと
Uターン女子がRubyを学んで理想のライフスタイルを手に入れた話
新卒、文系出身エンジニアが語る、経験0からプログラミングができるようになった理由

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大10,000円!テック系ライターさん大大大募集!!!
LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります