オーダーメイドコース
icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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関数で日付を表示させることが出来るよ。

大石ゆかり

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

田島悠介

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

 

[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは

フォーマットの種類

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

 

[ 年 ]

Y:4桁の年   例:2014
y:2桁の年   例:14
L:閏年、1:閏年、0:閏年ではない
o:PHP バージョン5.1.0 で追加されました。ISO-8601 形式の週番号の年を指定します。Yとほぼ同じですが、違いは、oの場合、ISO 週番号 (W)が前年か翌年の場合、W指定の年を意味します。 例:1999 あるいは 2003

 

[ 月 ]

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(土)

 

[ タイムゾーン ]

e :PHPバージョン5.1.0で追加されたタイムゾーン識別子です。  例: UTC, GMT, Atlantic/Azorese
I:サマータイムに関する指定。 例:1の場合サマータイム中。 0ならサマータイムではない。
O: グリニッジ標準時 (GMT) との時差です。 例: +0200
P: PHP バージョン5.1.3で追加された、グリニッジ標準時 (GMT) との時差です。時間と分をコロンで区切った形式で表示します。  例: +02:00
T: タイムゾーンの略称です。  例: EST, MDT …
Z: タイムゾーンのオフセット秒数です。 UTC の西側のタイムゾーン用のオフセットは常に負です。 UTC の東側のオフセットは常に正です。 例: -43200 から 50400

 

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

それでは、実際に現在の日付を取得し、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人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。

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

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。