php言語では現在時刻(現在日時)を任意の自分の好きなフォーマットで取得することができます。その方法はいくつか用意されていて、今回はその方法をわかりやすく解説していきます。
phpで日付に関する処理を行うには、date()関数を使います。
(PHP以外のJavaScriptやRubyなど他の言語でもdate関数・dateクラスというものが用意されています。どの言語でも出来る事はほとんど同じです。)
date()関数を使用することで、現在の日付取得を行うことができます。
目次 [hide]
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()関数でタイムゾーンを指定しなければエラーとなります。