現在の日付を取得する

 日付は次の2つの方法で扱うことができます。

■ date関数

 現在のシステムの日付時刻を、指定したフォーマット形式で取得できます。

関数名 date
パラメーターリスト
パラメター名 説明
string $format 出力する日付書式
フォーマット 説明
Y 4桁 2021
y 2桁 21
m 先頭に0を付ける 01~12
n 先頭に0を付けない 1~12
d 先頭に0を付ける 01~31
j 先頭に0を付けない 1~31
w 曜日の数値 0(日曜)~6(土曜)
t 指定した月の末日 28~31
a 午前 or 午後(小文字) am pm
A 午前 or 午後(大文字) AM PM
g 12時間単位
先頭に0を付けない
1~12
h 12時間単位
先頭に0を付ける
01~12
G 24時間単位
先頭に0を付けない
0~23
H 24時間単位
先頭に0を付ける
00~23
i 先頭に0を付ける 00~59
s 先頭に0を付ける 00~59
int $timestamp = time() integer型のタイムスタンプ(省略時は現在の時刻)
返り値
string 日付を表す文字列、timestampに数字以外が指定された場合はFALSE
date関数の仕様

○ ファイル

 次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 DateTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

DateTest.php

  1. <?php
  2. //現在の日付時刻を取得する
  3. $now = date('Y/m/d H:i:s');
  4. //指定した日付時刻を取得する
  5. $showdt = date('Y年n月j日 G時i分s秒', strtotime('2020/12/23 10:11:23'));
  6. ?>
  7. <!DOCTYPE html>
  8. <html>
  9. <head>
  10. <meta charset="UTF-8">
  11. <title>日時取得</title>
  12. </head>
  13. <body>
  14. <?php
  15. var_dump($now);
  16. var_dump($showdt);
  17. ?>
  18. </body>
  19. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 3行目で、「date」関数を指定しています。引数に指定したフォーマット形式で取得した日付が整形されて返ってきます。

 6行目では、date関数の第2引数に任意の日付時刻を指定しています。指定できるのは日付時刻を表す数値なので、「strtotime」関数を使って任意の日付時刻を表す数値を取得しています。

関数名 strtotime
パラメーターリスト
パラメター名 説明
string $time 日付・時刻を表す文字列
返り値
int 成功時はタイムスタンプ、失敗時はFALSE
strtotime関数の仕様

■ DateTimeクラス

 日付と時刻を表すオブジェクトです。

クラス名 DateTime
メソッド名 __construct
パラメーターリスト
パラメター名 説明
string $time = “now” 日付・時刻を表す文字列。”now”を指定すると現在の時刻を取得できる
DateTimeクラスのコンストラクターの仕様

 date関数と同じように、任意の書式の日付表現を取得したい場合は、DateTimeオブジェクトの「format」メソッドを使います。

クラス名 DateTime
メソッド名 format
パラメーターリスト
パラメター名 説明
string $format 出力する日付書式
返り値
string 指定した書式で整形した日付を表す文字列、失敗した場合はFALSE
formatメソッドの仕様

 また、DateTimeクラスの「createFromFormat」メソッドを使って、指定した書式でDateTimeオブジェクトを取得することができます。

クラス名 DateTime
メソッド名 createFromFormat
パラメーターリスト
パラメター名 説明
string $format 日付書式(date関数を参照)
string $time 日付時刻を表す文字列
返り値
DateTime DateTimeオブジェクト、失敗した場合はFALSE
createFromFormatメソッドの仕様

○ ファイル

 「DateTest.php」ファイルをコピーして次の名前のファイルを作成してください。

ファイルの種類 PHPファイル
ファイル名 DateTimeTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

DateTimeTest.php

  1. <?php
  2. //現在の日付時刻を取得する
  3. $now = new DateTime();
  4. //指定した日付時刻を取得する
  5. $showdt = new DateTime('2020/11/20 21:09:01');
  6. //日付をフォーマットする
  7. $formatdt = $showdt -> format('Y年m月d日 a g:i:s');
  8. //フォーマットを指定した日付オブジェクトを取得する
  9. $formatobj = DateTime::createFromFormat('Y/m/d', '2020/1/1');
  10. ?>
  11. <!DOCTYPE html>
  12. <html>
  13. <head>
  14. <meta charset="UTF-8">
  15. <title>日時取得</title>
  16. </head>
  17. <body>
  18. <?php
  19. var_dump($now);
  20. var_dump($showdt);
  21. var_dump($formatdt);
  22. var_dump($formatobj);
  23. ?>
  24. </body>
  25. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 3行目で、DateTimeオブジェクトを生成しています。引数に何も指定していないので、実行時のシステム日時を元に作成されます。6行目では、コンストラクターの引数に日時文字列を指定しています。これによりその日時を表すDateTimeオブジェクトが生成されます。

 9行目では、date関数と同じようにフォーマット化された日付を取得しています。formatメソッドの引数に、取得したい書式文字列を渡して呼び出すことで、その書式で整形された文字列を取得することができます。

 12行目では、書式を指定してDateTimeオブジェクトを取得しています。createFromFormatメソッドは「static」が指定されているので、「DateTime::createFromFormat()」のように記述します。

前へ   次へ