UPDATE:2019年06月18日
PHP 時間 を取得する
時間を取得する
php.ini に記述する場合
書式 date()
日時の文字列 = date('日付/時刻フォーマット文字列' [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日時となる)
//返り値は文字列(string)
date() が理解できる日付/時刻フォーマット文字列
書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime('英文形式 OR 日付/時刻 フォーマット文字列');
//返り値は数値(int)、失敗時は FALSE を返す
strtotime() が理解できる英文形式フォーマット文字列
strtotime() が理解できる日付/時刻のフォーマット文字列
書式 mktime()
指定日時のUNIXタイムスタンプ = mktime(時, 分, 秒, 月, 日, 年);
//返り値は数値(int)、失敗時は FALSE を返す
書式 DateTimeクラス
オブジェクト = new DateTime(['英文形式 OR 日付/時刻のフォーマット文字列']);
//[ ]は省略可能です。
DateTimeクラス が理解できる英文形式フォーマット文字列
DateTimeクラス が理解できる日付/時刻のフォーマット文字列
DateTime format()メソッド が理解できるフォーマット文字列
サンプル
1 2 3 4 5 6 7 8 | <?php echo date('Y-m-d H:i:s'); //現在の時間 echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 +1 hours +1 min +1 seconds')); //2019/05/01から+1時間+1分+1秒 2019-05-01 01:01:01 echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 -1 hours -1 min -1 seconds')); //2019/05/01から-1時間-1分-1秒 2019-04-30 22:58:59 ?> |
現在の時間を取得
date()で取得
1 | <?php echo date('H時i分s秒'); ?> //出力 11時50分03秒 |
date()関数 は、指定した日付や時刻のフォーマット文字列から、現在や任意の日付の日時の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列'); 」。オプションでUNIXタイムスタンプを指定すると指定したタイムスタンプに合わせた日時の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列', UNIXタイムスタンプ); 」。タイムスタンプを省略すると現在日時となります。
date() が理解できる日付/時刻フォーマット文字列
時
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
時 | g | 12時間単位。先頭ゼロなし | 1~12 |
G | 24時間単位。先頭ゼロなし | 0~23 | |
h | 12時間単位。先頭ゼロあり | 01~12 | |
H | 24時間単位。先頭ゼロあり | 00~23 | |
a | 午前/午後。小文字表示 | am pm | |
A | 午前/午後。大文字表示 | AM PM | |
echo date('g');//12
echo date('G');//0
echo date('h');//12
echo date('H');//00
echo date('a');//pm
echo date('A');//PM
|
date() で現在時間を取得します。
サンプル
1 2 3 4 | ・g 12時間単位。先頭ゼロなし。(1~12):<strong><?php echo date('g'); ?></strong><br> ・G 24時間単位。先頭ゼロなし。(0~23):<strong><?php echo date('G'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo date('h'); ?></strong><br> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo date('H'); ?></strong><br> |
現在が0時の場合、結果は、
・G 24時間単位。先頭ゼロなし。(0~23):0
・h 12時間単位。先頭ゼロあり。(01~12):12
・H 24時間単位。先頭ゼロあり。(00~23):00
となります。
現在が13時の場合、結果は、
・G 24時間単位。先頭ゼロなし。(0~23):13
・h 12時間単位。先頭ゼロあり。(01~12):01
・H 24時間単位。先頭ゼロあり。(00~23):13
となります。
午前または午後
1 2 | ・a 午前または午後(小文字)(am pm):<strong><?php echo date('a'); ?></strong><br> ・A 午前または午後(大文字)(AM PM):<strong><?php echo date('A'); ?></strong><br> |
結果は、
・A 午前または午後(大文字)(AM PM):PM
となります。
分
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
分 | i | 先頭ゼロあり | 00~59 |
echo date('i');//59
|
1 | ・i 先頭にゼロをつける。(00~59):<strong><?php echo date('i'); ?></strong><br> |
結果は、
となります。
秒
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
秒 | s | 先頭ゼロあり | 00~59 |
echo date('s');//01
| |||
ミリ秒 | v | ミリ秒 (PHP 7.0.0 で追加) uと同じ注釈が当てはまります。 | 000~999 |
echo date('v');//000
| |||
マイクロ秒 | u | マイクロ秒 (PHP 5.2.2 で追加)。date() の場合、これは常に 000000 となることに注意。というのも、この関数が受け取るパラメータは integer 型だからです。一方 DateTime をマイクロ秒つきで作成した場合は、DateTime::format() はマイクロ秒にも対応しています。 | 000000~999999 |
echo date('u');//000000
|
1 | ・s 先頭にゼロをつける。(00~59):<strong><?php echo date('s'); ?></strong><br> |
結果は、
となります。
ミリ秒
1 | ・v ミリ秒。(000~999):<strong><?php echo date('v'); ?></strong><br> |
結果は、
となります。
マイクロ秒
1 | ・u マイクロ秒(000000~999999):<strong><?php echo date('u'); ?></strong><br> |
結果は、
となります。
Swatch インターネット時間
1 | ・B Swatch インターネット時間(000~999):<strong><?php echo date('B'); ?></strong><br> |
結果は、
となります。
DateTimeクラスで取得
DateTimeクラスは様々な日付や時刻を表現できるクラスです。DateTimeクラスを呼び出しオブジェクト(インスタンス)を作成します「 オブジェクト = new DateTime(); 」。DateTimeクラスを呼び出す際に日付や時刻を指定することも出来ます「 オブジェクト = new DateTime('日付/時刻のフォーマット文字列'); 」。省略した場合は現在の日時になります。オブジェクトのformat()メソッドは、指定した日付や時刻のフォーマット文字列から日時の文字列を返します「 日時の文字列 = オブジェクト->format('日付/時刻のフォーマット文字列'); 」。成功すると日時の文字列を返し、失敗すると FALSE を返します。format()メソッドで指定する日時のフォーマット文字列はdate()関数で指定するフォーマットと同じです。
DateTime format()メソッド が理解できるフォーマット文字列
時
取得内容 | フォーマット文字 | 説明 | 戻り値の例 |
---|---|---|---|
時 | g | 12時間単位。先頭ゼロなし | 1~12 |
G | 24時間単位。先頭ゼロなし | 0~23 | |
h | 12時間単位。先頭ゼロあり | 01~12 | |
H | 24時間単位。先頭ゼロあり | 00~23 | |
a | 午前/午後。小文字表示 | am pm | |
A | 午前/午後。大文字表示 | AM PM | |
$objDateTime = new DateTime();
echo $objDateTime->format('g');//12
echo $objDateTime->format('G');//0
echo $objDateTime->format('h');//12
echo $objDateTime->format('H');//00
echo $objDateTime->format('a');//pm
echo $objDateTime->format('A');//PM
|
DateTimeクラスで現在時間を取得します。
1 2 3 4 5 | <?php $objDateTime = new DateTime(); ?> ・g 12時間単位。先頭ゼロなし。(1~12):<strong><?php echo $objDateTime->format('g'); ?></strong><br> ・G 24時間単位。先頭ゼロなし。(0~23):<strong><?php echo $objDateTime->format('G'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo $objDateTime->format('h'); ?></strong><br> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo $objDateTime->format('H'); ?></strong><br> |
現在が0時の場合、結果は、
・G 24時間単位。先頭ゼロなし。(0~23):0
・h 12時間単位。先頭ゼロあり。(01~12):12
・H 24時間単位。先頭ゼロあり。(00~23):00
となります。
現在が13時の場合、結果は、
・G 24時間単位。先頭ゼロなし。(0~23):13
・h 12時間単位。先頭ゼロあり。(01~12):01
・H 24時間単位。先頭ゼロあり。(00~23):13
となります。
午前または午後
1 2 3 | <?php $objDateTime = new DateTime(); ?> ・a 午前または午後(小文字)(am pm):<strong><?php echo $objDateTime->format('a'); ?></strong><br> ・A 午前または午後(大文字)(AM PM):<strong><?php echo $objDateTime->format('A'); ?></strong><br> |
結果は、
・A 午前または午後(大文字)(AM PM):PM
となります。
分
取得内容 | フォーマット文字 | 説明 | 戻り値の例 |
---|---|---|---|
分 | i | 先頭ゼロあり | 00~59 |
$objDateTime = new DateTime();
echo $objDateTime->format('i');//59
|
1 2 | <?php $objDateTime = new DateTime(); ?> ・i 先頭にゼロをつける。(00~59):<strong><?php echo $objDateTime->format('i'); ?></strong><br> |
結果は、
となります。
秒
取得内容 | フォーマット文字 | 説明 | 戻り値の例 |
---|---|---|---|
秒 | s | 先頭ゼロあり | 00~59 |
$objDateTime = new DateTime();
echo $objDateTime->format('s');//01
| |||
ミリ秒 | v | ミリ秒 | 654 |
$objDateTime = new DateTime();
echo $objDateTime->format('v');//000
| |||
マイクロ秒 | u | マイクロ秒 | 654321 |
$objDateTime = new DateTime();
echo $objDateTime->format('u');//000000
|
1 2 | <?php $objDateTime = new DateTime(); ?> ・s 先頭にゼロをつける。(00~59):<strong><?php echo $objDateTime->format('s'); ?></strong><br> |
結果は、
となります。
ミリ秒
1 2 | <?php $objDateTime = new DateTime(); ?> ・v ミリ秒。(000~999):<strong><?php echo $objDateTime->format('v'); ?></strong><br> |
結果は、
となります。
マイクロ秒
1 2 | <?php $objDateTime = new DateTime(); ?> ・u マイクロ秒(000000~999999):<strong><?php echo $objDateTime->format('u'); ?></strong><br><hr/> |
結果は、
となります。
Swatch インターネット時間
1 2 | <?php $objDateTime = new DateTime(); ?> ・B Swatch インターネット時間(000~999):<strong><?php echo $objDateTime->format('B'); ?></strong><br><hr/> |
結果は、
となります。
任意の時間を取得
date() + strtotime() で取得
date()関数 と strtotime()関数 を組み合わせることで、任意の時間を取得できます。date() にUNIXタイムスタンプを指定することで、タイムスタンプで指定した日時の時刻を取得します。タイムスタンプは、strtotime() で取得できます。strtotime()関数 は、「英文形式で指定された日付や時刻のフォーマット文字列」、または、「日付/時刻のフォーマット文字列」を読み込み、結果をUNIXタイムスタンプの数値として返します。
「 UNIXタイムスタンプ = strtotime('英文形式の日付/時刻フォーマット文字列'); 」
「 UNIXタイムスタンプ = strtotime('日付/時刻フォーマット文字列'); 」
最も一般的な日時の書式は strtotime('2019-01-02 03:04:05'); というような形です。その他にも様々なフォーマットがあります。興味のある方は以下のページを参照下さい。
strtotime() が理解できる英文形式フォーマット文字列
strtotime() が理解できる日付/時刻のフォーマット文字列
時
指定日時 2020-01-01 00:00:00 の場合
1 2 3 4 | ・g 12時間単位。先頭ゼロなし。(1~12):<strong><?php echo date('g', strtotime('2020-01-01 00:00:00')); ?></strong><br> ・G 24時間単位。先頭ゼロなし。(0~23):<strong><?php echo date('G', strtotime('2020-01-01 00:00:00')); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo date('h', strtotime('2020-01-01 00:00:00')); ?></strong><br> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo date('H', strtotime('2020-01-01 00:00:00')); ?></strong><br> |
結果は、
・G 24時間単位。先頭ゼロなし。(0~23):0
・h 12時間単位。先頭ゼロあり。(01~12):12
・H 24時間単位。先頭ゼロあり。(00~23):00
となります。
分
指定日時 2020-01-02 03:04:05 の場合
1 | ・i 先頭にゼロをつける。(00~59):<strong><?php echo date('i', strtotime('2020-01-02 03:04:05')); ?></strong><br> |
結果は、
となります。
秒
指定日時 2020-01-02 03:04:05 の場合
1 | ・s 先頭にゼロをつける。(00~59):<strong><?php echo date('s', strtotime('2020-01-02 03:04:05')); ?></strong><br> |
結果は、
となります。
DateTimeクラスで取得
DateTimeクラスを呼び出す際に日付や時刻を指定することが可能で、任意の時間を取得できます。DateTimeクラスに指定する日時の書式は DateTime('2019-01-02 03:04:05'); というような形です。また、英文形式フォーマット文字列も理解可能で、その他にも様々なフォーマットがあります。興味のある方は以下のページを参照下さい。
DateTimeクラス が理解できる英文形式フォーマット文字列
DateTimeクラス が理解できる日付/時刻のフォーマット文字列
時
指定日時 2020-01-01 00:00:00 の場合
1 2 3 4 5 | <?php $objDateTime = new DateTime('2020-01-01 00:00:00'); ?> ・g 12時間単位。先頭ゼロなし。(1~12):<strong><?php echo $objDateTime->format('g'); ?></strong><br> ・G 24時間単位。先頭ゼロなし。(0~23):<strong><?php echo $objDateTime->format('G'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo $objDateTime->format('h'); ?></strong><br> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo $objDateTime->format('H'); ?></strong><br> |
結果は、
・G 24時間単位。先頭ゼロなし。(0~23):0
・h 12時間単位。先頭ゼロあり。(01~12):12
・H 24時間単位。先頭ゼロあり。(00~23):00
となります。
分
指定日時 2020-01-02 03:04:05 の場合
1 2 | <?php $objDateTime = new DateTime('2020-01-02 03:04:05'); ?> ・i 先頭にゼロをつける。(00~59):<strong><?php echo $objDateTime->format('i'); ?></strong><br> |
結果は、
となります。
秒
指定日時 2020-01-02 03:04:05 の場合
1 2 | <?php $objDateTime = new DateTime('2020-01-02 03:04:05'); ?> ・s 先頭にゼロをつける。(00~59):<strong><?php echo $objDateTime->format('s'); ?></strong><br> |
結果は、
となります。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <h3>現在の時刻/時間 様々な書式</h3> <h4>時</h4> ・g 12時間単位。先頭ゼロなし。(1~12):<strong><?php echo date('g'); ?></strong><br> ・G 24時間単位。先頭ゼロなし。(0~23):<strong><?php echo date('G'); ?></strong><br> ・h 12時間単位。先頭ゼロあり。(01~12):<strong><?php echo date('h'); ?></strong><br> ・H 24時間単位。先頭ゼロあり。(00~23):<strong><?php echo date('H'); ?></strong><br> <h4>分</h4> ・i 先頭にゼロをつける。(00~59):<strong><?php echo date('i'); ?></strong><br> <h4>秒</h4> ・s 先頭にゼロをつける。(00~59):<strong><?php echo date('s'); ?></strong><br> <h4>午前または午後</h4> ・a 午前または午後(小文字)(am pm):<strong><?php echo date('a'); ?></strong><br> ・A 午前または午後(大文字)(AM PM):<strong><?php echo date('A'); ?></strong><br> <h4>ミリ秒</h4> ・v ミリ秒。(000~999):<strong><?php echo date('v'); ?></strong><br> <h4>マイクロ秒</h4> ・u マイクロ秒(000000~999999):<strong><?php echo date('u'); ?></strong><br> <h4>Swatch インターネット時間</h4> ・B Swatch インターネット時間(000~999):<strong><?php echo date('B'); ?></strong><br> <hr/> <h3>任意の日付の時間</h3> 任意の日付 が2019/05/01 00:00:00 の場合<br> <?php echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00')); echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('2019-05-01 00:00:00')); echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0,0,0,5,1,2019)); echo "<br>\n"; ?> <hr/> <h3>任意の日付から + 時間</h3> 任意の日付 が2019/05/01 00:00:00 の場合<br> <?php echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 +1 hours +1 min +1 seconds')); //2019/05/01から+1時間1分1秒 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 +100 hours')); //2019/05/01から+100時間 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 +100 min')); //2019/05/01から+100分 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 +100 seconds')); //2019/05/01から+100秒 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0+1,0+1,0+1,5,1,2019));//2019/05/01から+1時間1分1秒 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0+100,0,0,5,1,2019)); //2019/05/01から+100時間 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0,0+100,0,5,1,2019)); //2019/05/01から+100分 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0,0,0+100,5,1,2019)); //2019/05/01から+100秒 ?> <hr/> <h3>任意の日付から- 時間</h3> 任意の日付 が2019/05/01 00:00:00 の場合<br> <?php echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 -1 hours -1 min -1 seconds')); //2019/05/01から-1時間1分1秒 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 -100 hours')); //2019/05/01から-100時間 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 -100 min')); //2019/05/01から-100分 echo "<br>\n"; echo date('Y-m-d H:i:s', strtotime('01 May 2019 00:00:00 -100 seconds')); //2019/05/01から-100秒 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0-1,0-1,0-1,5,1,2019));//2019/05/01から-1時間1分1秒 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0-100,0,0,5,1,2019)); //2019/05/01から-100時間 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0,0-100,0,5,1,2019)); //2019/05/01から-100分 echo "<br>\n"; echo date('Y-m-d H:i:s', mktime(0,0,0-100,5,1,2019)); //2019/05/01から-100秒 ?> |
時
・g 12時間単位。先頭ゼロなし。(1~12):8
・G 24時間単位。先頭ゼロなし。(0~23):20
・h 12時間単位。先頭ゼロあり。(01~12):08
・H 24時間単位。先頭ゼロあり。(00~23):20
分
・i 先頭にゼロをつける。(00~59):21
秒
・s 先頭にゼロをつける。(00~59):48
午前または午後
・a 午前または午後(小文字)(am pm):pm
・A 午前または午後(大文字)(AM PM):PM
ミリ秒
・v ミリ秒。(000~999):000
マイクロ秒
・u マイクロ秒(000000~999999):000000
Swatch インターネット時間
・B Swatch インターネット時間(000~999):515
任意の日付の時間
任意の日付 が2019/05/01 00:00:00 の場合
2019-05-01 00:00:00
2019-05-01 00:00:00
2019-05-01 00:00:00
任意の日付から + 時間
任意の日付 が2019/05/01 00:00:00 の場合
2019-05-01 01:01:01
2019-05-05 04:00:00
2019-05-01 01:40:00
2019-05-01 00:01:40
2019-05-01 01:01:01
2019-05-05 04:00:00
2019-05-01 01:40:00
2019-05-01 00:01:40
任意の日付から- 時間
任意の日付 が2019/05/01 00:00:00 の場合
2019-04-30 22:58:59
2019-04-26 20:00:00
2019-04-30 22:20:00
2019-04-30 23:58:20
2019-04-30 22:58:59
2019-04-26 20:00:00
2019-04-30 22:20:00
2019-04-30 23:58:20
タグ(=記事関連ワード)
日付
最終更新日:2019年06月18日