UPDATE:2019年06月14日
PHP タイムスタンプの取得と日時の取得
PHP で タイムスタンプ を取得する
- time() は、現在の UNIXタイムスタンプを返します。
- mktime(時,分,秒,月,日,年)は、指定日時を UNIXのタイムスタンプとして取得します。
- strtotime(英文形式の日付)は、英文形式で指定された日付を UNIXタイムスタンプに変換します。
※「mktime()」を引数なしでコールするとエラーが出ますので、「time()」を使用しましょう。
現在のUNIXタイムスタンプ = time();
//引数なし、返り値は数値(int)
書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime('英文形式 OR 日付/時刻 フォーマット文字列');
//返り値は数値(int)、失敗時は FALSE を返す
strtotime() が理解できる英文形式フォーマット文字列
strtotime() が理解できる日付/時刻のフォーマット文字列
書式 mktime()
指定日時のUNIXタイムスタンプ = mktime(時, 分, 秒, 月, 日, 年);
//返り値は数値(int)、失敗時は FALSE を返す
書式 date()
日時の文字列 = date('日付/時刻フォーマット文字列' [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日時となる)
//返り値は文字列(string)
date() が理解できる日付/時刻フォーマット文字列
サンプル
1 2 3 4 5 6 7 8 9 | <?php //現在のUNIXタイムスタンプ echo time()."<br>";//出力 1546365845 echo mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y'))."<br>";//出力 1546365845 //任意の日時のUNIXタイムスタンプ echo strtotime('2020-01-02 03:04:05')."<br>";//出力 1577901845 echo mktime(3,4,5,1,2,2020)."<br>";//出力 1577901845 ?> |
現在のUNIXタイムスタンプを取得
time() で取得
実行日:2019-01-02 03:04:05
1 2 3 4 | <?php //time() echo time()."<br>\n"; ?> |
結果は
となります。
mktime() で取得
実行日:2019-01-02 03:04:05
1 2 3 4 | <?php //mktime() echo mktime(date('H'),date('i'),date('s'),date('n'),date('j'),date('Y'))."<br>\n"; ?> |
結果は
となります。
strtotime() で取得
実行日:2019-01-02 03:04:05
1 2 3 4 | <?php //strtotime() echo strtotime("now")."<br>\n"; ?> |
結果は
となります。
また、このUNIXタイムスタンプ 1546365845 を日付に変換すると
1 2 3 | <?php echo date('Y-m-d H:i:s', 1546365845); ?> |
結果は
となります。
任意の日付(指定日)のUNIXタイムスタンプと日付を取得
strtotime() で取得
strtotime()を使用して指定日時のUNIXタイムスタンプを取得します。また、タイムスタンプから日付を取得します。
2018年10月20日のタイムスタンプを取得する
1 2 | 2018年10月20日のタイムスタンプ:<?php echo strtotime("2018-10-20"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("2018-10-20")); ?> |
結果は
日時に変換:2018/10/20 00:00:00
となります。
2020年1月2日3時4分5秒のタイムスタンプを取得する
1 2 | 2020年1月2日 3時4分5秒のタイムスタンプ:<?php echo strtotime("2020-01-02 03:04:05"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("2020-01-02 03:04:05")); ?> |
結果は
日時に変換:2020/01/02 03:04:05
となります。
現在から1日後のタイムスタンプを取得する
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1日後のタイムスタンプ:<?php echo strtotime("+1 day"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("+1 day")); ?> |
結果は
日時に変換:2019/01/02 00:00:00
となります。
-1 とすれば、1日前 となる。
現在から1週間後のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1週間後のタイムスタンプ:<?php echo strtotime("+1 week"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("+1 week")); ?> |
結果は
日時に変換:2019/01/08 00:00:00
となります。
-1 とすれば、1週間前 となる。
現在から1カ月後のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1カ月後のタイムスタンプ:<?php echo strtotime("+1 month"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("+1 month")); ?> |
結果は
日時に変換:2019/02/01 00:00:00
となります。
-1 とすれば、1カ月前 となる。
現在から+1秒、+2分、+3時間、+4日、+5カ月、+6年のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | +1秒、+2分、+3時間、+4日、+5カ月、+6年のタイムスタンプ:<?php echo strtotime("+1 seconds +2 min +3 hours +4 day +5 month +6 year"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("+1 seconds +2 min +3 hours +4 day +5 month +6 year")); ?> |
結果は
日時に変換:2025/06/05 03:02:01
となります。
次の木曜日のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 次の木曜日のタイムスタンプ:<?php echo strtotime("next Thursday"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("next Thursday")); ?> |
結果は
日時に変換:2019/01/03 00:00:00
となります。
前の月曜日のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 前の月曜日のタイムスタンプ:<?php echo strtotime("last Monday"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("last Monday")); ?> |
結果は
日時に変換:2018/12/31 00:00:00
となります。
mktime() で取得
mktime()を使用して指定日時のUNIXタイムスタンプを取得します。また、タイムスタンプから日付を取得します。
2020年1月2日3時4分5秒のタイムスタンプを取得する
1 2 | 2020年1月2日 3時4分5秒のタイムスタンプ:<?php echo mktime(3,4,5,1,2,2020); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',mktime(3,4,5,1,2,2020)); ?> |
結果は
日時に変換:2020/01/02 03:04:05
となります。
現在から1日後のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1日後のタイムスタンプ:<?php echo mktime(0,0,0,date('m'),date('d')+1,date('Y')); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',mktime(0,0,0,date('m'),date('d')+1,date('Y'))); ?> |
結果は
日時に変換:2019/01/02 00:00:00
となります。
-1 とすれば、1日前 となる。
現在から1週間後のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1週間後のタイムスタンプ:<?php echo mktime(0,0,0,date('m'),date('d')+7,date('Y')); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',mktime(0,0,0,date('m'),date('d')+7,date('Y'))); ?> |
結果は
日時に変換:2019/01/08 00:00:00
となります。
-7 とすれば、1週間前 となる。
現在から1カ月後のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | 1カ月後のタイムスタンプ:<?php echo mktime(0,0,0,date('m')+1,date('d'),date('Y')); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',mktime(0,0,0,date('m')+1,date('d'),date('Y'))); ?> |
結果は
日時に変換:2019/02/01 00:00:00
となります。
-1 とすれば、1カ月前 となる。
現在から+1秒、+2分、+3時間、+4日、+5カ月、+6年のタイムスタンプ
2019-01-01 00:00:00にコードを実行した場合。
1 2 | +1秒、+2分、+3時間、+4日、+5カ月、+6年のタイムスタンプ:<?php echo mktime(date('H')+3,date('i')+2,date('s')+1,date('m')+5,date('d')+4,date('Y')+6); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',mktime(date('H')+3,date('i')+2,date('s')+1,date('m')+5,date('d')+4,date('Y')+6)); ?> |
結果は
日時に変換:2025/06/05 03:02:01
となります。
タグ(=記事関連ワード)
日付
最終更新日:2019年06月14日