【入門】【初心者】PHP言語で現在日付(現在時間)を取得する方法

php言語では、現在時刻(現在日時)を任意の自分の好きなフォーマットで取得することができます。その方法はいくつか用意されていますので、今回はその方法をわかりやすく解説していきます。

phpで日付に関する処理を行うには、date()関数を使います。

(PHP以外のJavaScriptやRubyなど他の言語でもdate関数・dateクラスというものが用意されています。どの言語でも出来る事はほとんど同じです。)

date()関数を使用することで、現在の日付取得を行うことができます。

 

date関数

date()関数の書式は下記になります。

記述例

結果としては、下記のような時刻(現在日時)が画面に表示されます。

引数で指定する代表的な日付のフォーマット一覧

フォーマット 内容 出力結果(例)
Y 西暦(4桁) 2017
y 西暦(2桁) 17
l うるう年: 1、平年: 0 0
m 月(0埋め) 08
n 月(0埋め無し) 8
M 月 英語表記 August
F 月 英語表記(略) Aug
d 日付(0埋め) 08
j 日付(0埋め無し) 8
l 曜日 英語表記 Monday
D 曜日 英語表記(略) Mon
w 曜日 (日曜: 0 → 土: 6) 1
H 時刻 24時間表記 (0埋め) 09
G 時刻 24時間表記 (0埋め無し) 9
h 時刻 12時間表記 (0埋め) 09
g 時刻 12時間表記 (0埋め無し) 9
i 02
s 02

date()関数の引数で上記の記号を組み合わせることで、任意のフォーマットで日時を取得することができます。

現在(今日)の日付を取得したい場合

結果

現在の日時を取得した場合

結果

現在の時刻 + 今日の曜日を取得したい場合

結果
となります。

日付がずれる場合

これまでの時刻の出力結果が自分のPCの日付とずれている場合があります。(大抵、現在時刻と9時間ずれています)

その場合は、php.iniを編集することで、デフォルトのタイムゾーンを指定することができます。

php.iniをいじるのは難しいという方は、 日付処理を行う前に、date_default_timezone_set()関数を実行することで、日付のタイムゾーンを変更することができます。

結果

DateTimeクラス

上記までの方法以外でも、DateTimeクラスを利用する方法があります。

下記のように、DateTimeクラスを呼び出し、formatメソッドを使用することで日付取得を行うことができます。

さっきまでのはDate関数と呼ばれる「関数」の仲間で、今紹介したのは「DateTimeクラス」という「クラス」の仲間です。

「関数」と「クラス」って何?というのはウェブカツ!!のPHPオブジェクト指向部でも説明していますが、ここでは「書き方が少し違うだけで同じことができるもの」と思ってもらえれば大丈夫です。

結果

DateTimeクラスのコンストラクタ引数として’now’を与えることで、現在時刻を取得することができます。

format()メソッドの引数のフォーマットは、この記事の一覧表と同じものを使用することができます。

また、引数には’now’以外にも、日時を指定することができます。

結果

※ DateTimeクラスはphp.iniでタイムゾーンを指定するか、date_default_timezone_set()関数でタイムゾーンを指定しなければエラーとなります。