PHPのdateメソッドを使って日付を取得する方法【初心者向け】

プログラミング初心者向けにPHPのdateメソッドを使って日付を取得する方法について解説しています。Webページ上に現在の日付・時間を表示させたい場合に便利です。表示するフォーマットもカスタマイズできるので、ぜひ覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPでdateメソッドを使って日付を取得する方法について解説していきます。

取得できるフォーマットも細かく紹介しているので、ぜひ参考にしてみてください。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

PHPでの日付取得の書き方

Webページに現在の日付を表示するためには、date関数(メソッド)を使用します。

date関数では、日付の表示形式(フォーマット)を指定することによって、表示される内容を必要に応じてカスタマイズできます。

書式

date(フォーマット)

処理

現在の日時を取得し、フォーマットで指定した形式に基づいて整形し、文字列を返します。

例えば、date(’Y / m / d H : i : s’)のように指定すると、戻り値として「2016/12/03 21:21:30」のように文字列を返します。

 

大石ゆかり

田島メンター!年月や日時を表示させるにはどうしたらいいですか?

田島悠介

PHPの場合は、date関数で日付を表示させることが出来るよ。

大石ゆかり

未来の日付なども取得できるんですか?

田島悠介

タイムスタンプっていうのを指定しないと、現在の時刻しか取得出来ないんだ。とりあえず、書式を見てみよう!

 

フォーマットの種類

date関数では、使用できるフォーマットが決められています。どのようなフォーマットが使用できるのか、ここで紹介しておきます。

 

[ 年 ]

Y:4桁の年   例:2014
y:2桁の年   例:14
L:閏年、1:閏年、0:閏年ではない

 

[ 月 ]

m:ゼロ詰めの月  01~12
n:ゼロなしの月   1~12
F:フルスペルの月  例:January
M:3 文字形式の月   例:Jan
t:月の日数。28~31

 

[ 日 ]

d:ゼロ詰めの日  01~31
j:ゼロなしの日  1~31
z:年間の通算日  0~365

 

[ 時 ]

g:12時間単位の時(ゼロなし)。1~12
G:24時間単位の時(ゼロなし)。0~23
h:12時間単位の時    01~12
H:24時間単位の時  00~23

 

[ 分 ]

i:分  00~59

 

[ 秒 ]

s:秒  00~59

 

[ 午前 / 午後 ]

a:午前:am 午後:pm
A:午前:AM 午後:PM

 

[ 曜日 ]

D:3文字形式の曜日   例:Mon
l:フルスペルの曜日 例:Monday
N:ISO-8601形式の曜日 1(月)~7(日)
W:曜日 0(日)~6(土)

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に日付を取得してみよう。

それでは、実際に現在の日付を取得し、WEB上に表示してみましょう。

 

タイムゾーンの設定

PHPでは、日付を取得する場合にタイムゾーンを指定しておく必要があります。

タイムゾーンというのは、共通の標準時刻を使う地域のことを言います。現在地あるいは、取得したい地域に合わせてタイムゾーンを指定するのです。たとえば、現在、日本にいるので、タイムゾーンは’Japan’という文字列を指定します。

 

書式

date_default_timezone_set(引数)

 

処理

地域を指定し、その地域の共通の標準時刻を取得する。

 

date_default_timezone_set('Japan')

と指定し、そのあとにdate関数を実行すると、日本の標準時刻を取得することができます。

 

サンプルプログラム

<?php
  date_default_timezone_set('Japan');
  echo '<p>', date('Y/m/d H:i:s'), '</p>';
  echo '<p>', date('Y年m月d日 H時i分s秒'), '</p>';
  echo '<p>', date('Y M j H:i:s'), '</p>';
  echo '<p>', date('Y年m月d日 A H時i分s秒'), '</p>';
  echo '<p>', date('Y M j l H:i:s'), '</p>';
?>

 

実行結果

b5320cf94ba7a662f8976c1282dcfb151

 

 

おわりに

DATE関数を使った、PHPでの日付を取得する方法はいかがでしたでしたでしょうか。

フォーマットの種類が思ったより豊富で、柔軟にカスタマイズできるようです。ぜひ、一度、試してみてください。

 

大石ゆかり

時刻が表示されました!でも、全部現在の日付と時刻ですね。

田島悠介

省略されてるけど、タイムスタンプを指定すると、その時間帯を一定の書式で表示してくれるんだ。

大石ゆかり

タイムスタンプって何でしょう?

田島悠介

1970年1月1日からの経過秒数なんだ。mktime関数や今回のdate関数を使うと、過去から未来までの時刻を取得・表示できるよ!

 

PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。