UPDATE:2019年11月08日
PHP 日付 あらゆる日時を取得
PHPで日付/時間を取得するには
PHP で日付や時間を取得するには、date()関数 や DateTimeクラス を利用します。DateTimeクラスは様々な日付や時間を表現すことが出来ます。date() は、指定した「日付や時刻のフォーマット文字列」から「日時の文字列」を返します。オプションでUNIXタイムスタンプを指定すると指定したタイムスタンプに合わせた日時を返します。タイムスタンプを省略すると現在日時を返します。タイムスタンプは、strtotime()関数 や mktime()関数 で取得することが出来ます。
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 | <?php //2019-05-01 現在の場合 echo date('Y-m-d');//現在日取得 2019-05-01 echo date('Y-m-d', strtotime('-1 year'));//今から去年の日を取得 2018-05-01 echo date('Y-m-d', mktime(0,0,0,date('m'),date('d'),date('Y')+1));//今から来年の日を取得 2020-05-01 ?> |
date()/DateTimeクラス->format()メソッド のフォーマット文字列 早見表
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
年 | Y | 1999 や 2020 | 年 4 桁の数字 |
y | 99 や 19 | 年 2 桁の数字 | |
L | 1 か 0 | 閏年かどうか。1なら閏年。0なら閏年ではない | |
月 | F | January~December | 月 フルスペルの文字 |
m | 01~12 | 月 数字。先頭にゼロをつける | |
M | Jan~Dec | 月 3 文字形式 | |
n | 1~12 | 月 数字。先頭にゼロをつけない | |
t | 28~31 | 月 指定した月の日数 | |
日 | d | 01~31 | 日 2桁の数字(先頭にゼロがつく場合も) |
j | 1~31 | 日 数字。先頭にゼロをつけない | |
曜日 | D | Mon~Sun | 3文字のテキスト形式 |
l | Sunday~Saturday | フルスペル形式 | |
N | 1~7 | 数字 1(月曜) から 7(日曜) | |
w | 0~6 | 数字 0(日曜) から 6(土曜) | |
W | 1 | 数字 月曜日に始まる年単位の週番号 | |
時 | g | 1~12 | 12時間単位。先頭ゼロなし |
G | 0~23 | 24時間単位。先頭ゼロなし | |
h | 01~12 | 12時間単位。先頭ゼロあり | |
H | 00~23 | 24時間単位。先頭ゼロあり | |
a | am pm | 午前/午後。小文字表示 | |
A | AM PM | 午前/午後。大文字表示 | |
分 | i | 00~59 | 先頭ゼロあり |
秒 | s | 00~59 | 先頭ゼロあり |
全日付 | c | 2020-05-15T01:04:54+09:00 | ISO8601 フォーマット日付 |
r | Wed, 15 May 2020 01:04:54 +0900 | RFC2822 フォーマット日付 |
strtotime() /DateTimeクラス 英文形式フォーマット文字列 早見表
取得内容 | 英文形式のフォーマット文字列 | 内容 |
---|---|---|
今現在 | now | 今現在のUNIXタイムスタンプ |
本日 | today | 本日のUNIXタイムスタンプ |
昨日 | yesterday | 昨日のUNIXタイムスタンプ |
明日 | tomorrow | 明日のUNIXタイムスタンプ |
今週 | this week | 今週の月曜日のUNIXタイムスタンプ |
先週 | last week | 先週の月曜日のUNIXタイムスタンプ |
来週 | next week | 来週の月曜日のUNIXタイムスタンプ |
今月 | this month | 今月の同日のUNIXタイムスタンプ |
先月 | last month | 先月の同日のUNIXタイムスタンプ |
来月 | next month | 来月の同日のUNIXタイムスタンプ |
今年 | this year | 今年の同日のUNIXタイムスタンプ |
去年 | last year | 去年の同日のUNIXタイムスタンプ |
来年 | next year | 来年の同日のUNIXタイムスタンプ |
指定日付 | 1 January 2019 | 指定日付のUNIXタイムスタンプ |
指定日時 | 2019-01-02 03:04:05 | 指定日時のUNIXタイムスタンプ |
本日から 年 月 日 週 を加算 (+ 省略可/- も可) | +1 day +1 week +1 month +1 year | 年 月 日 週 の + - 指定のUNIXタイムスタンプ |
今から+1時間1分1秒 (+ 省略可/- も可) | +1 hours +1 min +1 seconds | 時、分、秒 の + - 指定のUNIXタイムスタンプ |
次の木曜日 | Thursday next Thursday | 次の木曜日のUNIXタイムスタンプ |
前の木曜日 | last Thursday | 前の木曜日のUNIXタイムスタンプ |
月の最初の日 | first day of this month | 指定月の最初の日のUNIXタイムスタンプ |
月の最後の日 | last day of this month | 指定月の最後の日のUNIXタイムスタンプ |
指定日から + - | 2020-01-01 00:00:00 +1 seconds +1 min +1 hours +1 day +1 week +1 month +1 year | 指定日から + - したUNIXタイムスタンプ |
date()関数 や DateTimeクラス を実行して日付/時間を取得
date()関数を実行してみましょう
date()関数 は、指定した「日付や時刻のフォーマット文字列」から「日時の文字列」を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列'); 」。
例えば
1 | <?php echo date('Y');//出力 2019 ?> |
とすると、現在の「年」(4桁)が取得できます。「Y」は4桁の年数を表す「日付や時刻のフォーマット文字列」です。
オプションでUNIXタイムスタンプを指定すると、指定したタイムスタンプに合わせた日時の文字列を返します「 日時の文字列 = date('日付/時刻のフォーマット文字列', UNIXタイムスタンプ); 」。タイムスタンプは、strtotime()関数 や mktime()関数 で取得できます。タイムスタンプを省略すると現在日時となります。
1 | <?php echo date('Y', strtotime('+5 year'));//出力 2024 ?> |
オプションのタイムスタンプで+5年後のタイムスタンプを指定します。結果は現在から5年後の「年」(4桁)が取得できます。
date() の「年 月 日 時 分 秒」を表現するフォーマット文字列を使用すると、現在の日時を取得することが出来ます。
2019-05-21 13:33:59 にコードを実行した場合です。実行時の日時を取得します。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo date('Y-m-d').'<br>'; //2019-05-21 echo date('Y年n月d日').'<br>'; //2019年5月21日 echo date('Y年').'<br>'; //2019年 echo date('n月').'<br>'; //5月 echo date('j日').'<br>'; //21日 echo date('M d, Y').'<br>'; //May 21, 2019 echo date('F d, Y').'<br>'; //May 21, 2019 echo date('l F d, Y').'<br>'; //Tuesday May 21, 2019 echo date('H:i:s').'<br>'; //13:33:59 echo date('g:i:s A').'<br>'; //1:33:59 PM ?> |
結果は
2019年5月21日
2019年
5月
21日
May 21, 2019
May 21, 2019
Tuesday May 21, 2019
13:33:59
1:33:59 PM
となります。
DateTimeクラスを実行してみましょう
DateTimeクラスは様々な日付や時刻を表現できるクラスです。DateTimeクラスを呼び出しオブジェクト(インスタンス)を作成します「 オブジェクト = new DateTime(); 」。DateTimeクラスを呼び出す際に日付や時刻を指定することも出来ます「 オブジェクト = new DateTime('日付/時刻のフォーマット文字列'); 」。省略した場合は現在の日時になります。オブジェクトのformat()メソッドは、指定した日付や時刻のフォーマット文字列から日時の文字列を返します「 日時の文字列 = オブジェクト->format('日付/時刻のフォーマット文字列'); 」。成功すると日時の文字列を返し、失敗すると FALSE を返します。format()メソッドで指定する日時のフォーマット文字列はdate()関数で指定するフォーマットと同じです。
2019-05-21 13:33:59 にコードを実行した場合です。実行時の日時を取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $objDateTime = new DateTime(); echo $objDateTime->format('Y-m-d').'<br>'; //2019-05-21 echo $objDateTime->format('Y年n月d日').'<br>'; //2019年5月21日 echo $objDateTime->format('Y年').'<br>'; //2019年 echo $objDateTime->format('n月').'<br>'; //5月 echo $objDateTime->format('j日').'<br>'; //21日 echo $objDateTime->format('M d, Y').'<br>'; //May 21, 2019 echo $objDateTime->format('F d, Y').'<br>'; //May 21, 2019 echo $objDateTime->format('l F d, Y').'<br>'; //Tuesday May 21, 2019 echo $objDateTime->format('H:i:s').'<br>'; //13:33:59 echo $objDateTime->format('g:i:s A').'<br>'; //1:33:59 PM ?> |
結果は
2019年5月21日
2019年
5月
21日
May 21, 2019
May 21, 2019
Tuesday May 21, 2019
13:33:59
1:33:59 PM
となります。
本日(現在)の日付や時間を取得
date() で取得
本日(現在)の日付を取得
2019/01/02 にコードを実行した場合です。日付を取得します。
1 2 3 4 5 | <?php echo date('Y-m-d');//本日 echo '<br>'; echo date('Y年m月d日');//本日 ?> |
結果は
2019年01月02日
となります。
本日(現在)の日付/時間を取得
2019/01/02 03:04:05 にコードを実行した場合です。日付を取得します。
1 2 3 4 5 6 | <?php echo date('Y-m-d H:i:s');//現在 echo '<br>'; echo date('Y年m月d日 H時i分s秒');//現在 echo '<br>'; ?> |
結果は
2019年01月02日 03時04分05秒
となります。
DateTimeクラス で取得
本日(現在)の日付を取得
2019/01/02 にコードを実行した場合です。日付を取得します。
1 2 3 4 5 6 7 | <?php //クラスの呼び出し $objDateTime = new DateTime(); echo $objDateTime->format('Y-m-d');//本日 echo '<br>'; echo $objDateTime->format('Y年m月d日');//本日 ?> |
結果は
2019年01月02日
となります。
本日(現在)の日付/時間を取得
2019/01/02 03:04:05 にコードを実行した場合です。日付を取得します。
1 2 3 4 5 6 7 8 | <?php //クラスの呼び出し $objDateTime = new DateTime(); echo $objDateTime->format('Y-m-d H:i:s');//現在 echo '<br>'; echo $objDateTime->format('Y年m月d日 H時i分s秒');//現在 echo '<br>'; ?> |
結果は
2019年01月02日 03時04分05秒
となります。
明日
現時点から明日の日付を取得
2019/05/15 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('+1 day'))."<br>\n";//明日 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j')+1,date('Y')))."<br>\n";//明日 $objDateTime = new DateTime('+1 day'); echo $objDateTime->format('Y-m-d')."<br>\n";//明日 ?> |
結果は
2019-05-16
となります。
任意の日(指定日)から明日の日付を取得
指定日を 2018-05-01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 +1 day'))."<br>\n";//明日 echo date('Y-m-d', mktime(0,0,0,5,1+1,2018))."<br>\n";//明日 $objDateTime = new DateTime('2018-05-01 +1 day'); echo $objDateTime->format('Y-m-d')."<br>\n";//明日 ?> |
結果は
2018-05-02
となります。
来週
現時点から来週の日付を取得
2019/05/15 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('+1 week'))."<br>\n";//来週 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j')+7,date('Y')))."<br>\n";//来週 $objDateTime = new DateTime('+1 week'); echo $objDateTime->format('Y-m-d')."<br>\n";//来週 ?> |
結果は
2019-05-22
となります。
任意の日(指定日)から来週の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 +1 week'))."<br>\n";//来週 echo date('Y-m-d', mktime(0,0,0,5,1+7,2018))."<br>\n";//来週 $objDateTime = new DateTime('2018-05-01 +1 week'); echo $objDateTime->format('Y-m-d')."<br>\n";//来週 ?> |
結果は
2018-05-08
となります。
来月
現時点から来月の日付を取得
2019/05/15 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('+1 month'))."<br>\n";//来月 echo date('Y-m-d', mktime(0,0,0,date('n')+1,date('j'),date('Y')))."<br>\n";//来月 $objDateTime = new DateTime('+1 month'); echo $objDateTime->format('Y-m-d')."<br>\n";//来月 ?> |
結果は
2019-06-15
となります。
任意の日(指定日)から来月の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 +1 month'))."<br>\n";//来月 echo date('Y-m-d', mktime(0,0,0,5+1,1,2018))."<br>\n";//来月 $objDateTime = new DateTime('2018-05-01 +1 month'); echo $objDateTime->format('Y-m-d')."<br>\n";//来月 ?> |
結果は
2018-06-01
となります。
来年
現時点から来年の日付を取得
2019/05/15 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('+1 year'))."<br>\n";//来年 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j'),date('Y')+1))."<br>\n";//来年 $objDateTime = new DateTime('+1 year'); echo $objDateTime->format('Y-m-d')."<br>\n";//来年 ?> |
結果は
2020-05-15
となります。
任意の日(指定日)から来年の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 +1 year'))."<br>\n";//来年 echo date('Y-m-d', mktime(0,0,0,5,1,2018+1))."<br>\n";//来年 $objDateTime = new DateTime('2018-05-01 +1 year'); echo $objDateTime->format('Y-m-d')."<br>\n";//来年 ?> |
結果は
2019-05-01
となります。
昨日
現時点から昨日の日付を取得
2019/05/16 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('-1 day'))."<br>\n";//昨日 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j')-1,date('Y')))."<br>\n";//昨日 $objDateTime = new DateTime('-1 day'); echo $objDateTime->format('Y-m-d')."<br>\n";//昨日 ?> |
結果は
2019-05-15
となります。
任意の日(指定日)から昨日の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 -1 day'))."<br>\n";//昨日 echo date('Y-m-d', mktime(0,0,0,5,1-1,2018))."<br>\n";//昨日 $objDateTime = new DateTime('2018-05-01 -1 day'); echo $objDateTime->format('Y-m-d')."<br>\n";//昨日 ?> |
結果は
2018-04-30
となります。
先週
現時点から先週の日付を取得
2019/05/16 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('-1 week'))."<br>\n";//先週 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j')-7,date('Y')))."<br>\n";//先週 $objDateTime = new DateTime('-1 week'); echo $objDateTime->format('Y-m-d')."<br>\n";//先週 ?> |
結果は
2019-05-09
となります。
任意の日(指定日)から先週の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 -1 week'))."<br>\n";//先週 echo date('Y-m-d', mktime(0,0,0,5,1-7,2018))."<br>\n";//先週 $objDateTime = new DateTime('2018-05-01 -1 week'); echo $objDateTime->format('Y-m-d')."<br>\n";//先週 ?> |
結果は
2018-04-24
となります。
先月
現時点から先月の日付を取得
2019/05/16 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('-1 month'))."<br>\n";//先月 echo date('Y-m-d', mktime(0,0,0,date('n')-1,date('j'),date('Y')))."<br>\n";//先月 $objDateTime = new DateTime('-1 month'); echo $objDateTime->format('Y-m-d')."<br>\n";//先月 ?> |
結果は
2019-04-16
となります。
任意の日(指定日)から先月の日付を取得
指定日を 2018/05/01 にした場合の結果です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 -1 month'))."<br>\n";//先月 echo date('Y-m-d', mktime(0,0,0,5-1,1,2018))."<br>\n";//先月 $objDateTime = new DateTime('2018-05-01 -1 month'); echo $objDateTime->format('Y-m-d')."<br>\n";//先月 ?> |
結果は
2018-04-01
となります。
去年
現時点から去年の日付を取得
2019/05/16 にコードを実行した場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('-1 year'))."<br>\n";//去年 echo date('Y-m-d', mktime(0,0,0,date('n'),date('j'),date('Y')-1))."<br>\n";//去年 $objDateTime = new DateTime('-1 year'); echo $objDateTime->format('Y-m-d')."<br>\n";//去年 ?> |
結果は
2018-05-16
となります。
任意の日(指定日)から去年の日付を取得
指定日を 2018/05/01 にした場合です。
1 2 3 4 5 6 | <?php echo date('Y-m-d', strtotime('2018-05-01 -1 year'))."<br>\n";//去年 echo date('Y-m-d', mktime(0,0,0,5,1,2018-1))."<br>\n";//去年 $objDateTime = new DateTime('2018-05-01 -1 year'); echo $objDateTime->format('Y-m-d')."<br>\n";//去年 ?> |
結果は
2017-05-01
となります。
任意の日付(指定日)
strtotime() で指定日の日付をを取得する
指定日の日付を取得するには、その日付のタイムスタンプを取得して日付に変換します。
strtotime()を使用して指定日時のUNIXタイムスタンプを取得し、タイムスタンプから日付を取得します。
2018年10月20日を取得する
1 2 | 2018年10月20日のタイムスタンプ:<?php echo strtotime("20 October 2018"); ?> 日時に変換:<?php echo date('Y/m/d H:i:s',strtotime("20 October 2018")); ?> |
結果は
日時に変換: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
となります。
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
となります。
指定曜日の日付
現時点から前の曜日/次の曜日の日付を取得
2019/05/16 にコードを実行した場合です。
1 2 3 4 | <?php echo date('Y-m-d', strtotime('last Monday'));//前の月曜日の日付 echo date('Y-m-d', strtotime('next Monday'));//次の月曜日の日付 ?> |
結果は
2018-05-20
となります。
指定日から前の曜日/次の曜日の日付を取得
2018/05/01 から前の月曜日と次の月曜日の日付です。
1 2 3 4 | <?php echo date('Y-m-d', strtotime('2018-05-01 last Monday'));//前の月曜日の日付 echo date('Y-m-d', strtotime('2018-05-01 next Monday'));//次の月曜日の日付 ?> |
結果は
2018-05-07
となります。
時間を取得
現在時刻
2019/01/02 03:04:05 にコードを実行した場合です。日付と時間を取得します。
1 2 3 4 5 6 | <?php echo date('Y-m-d H:i:s');//本日 echo '<br>'; echo date('Y年m月d日 H時i分s秒');//本日 echo '<br>'; ?> |
結果は
2019年01月02日 03時04分05秒
となります。
時間の加算
2019-05-01 00:00:00 から時間をプラスする
1 2 3 4 5 6 7 8 9 | <?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秒 ?> |
結果は
2019-05-05 04:00:00
2019-05-01 01:40:00
2019-05-01 00:01:40
となります。
時間の減算
2019-05-01 00:00:00 から時間をマイナスする
1 2 3 4 5 6 7 8 9 | <?php 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秒 ?> |
結果は
2019-04-26 20:00:00
2019-04-30 22:20:00
2019-04-30 23:58:20
となります。
曜日を取得する
本日(今日)の曜日を取得
2019/05/21 火曜日 に実行した場合。
1 2 3 4 5 | ・3文字のテキスト形式。<?php echo date('D'); ?><br> ・フルスペル形式。<?php echo date('l'); ?><br> ・数値。1(月)から 7(日):<?php echo date('N'); ?><br> ・数値。0(日)から 6(土):<?php echo date('w'); ?><br> ・月曜日に始まる年単位の週番号:<?php echo date('W'); ?><br> |
結果は
・フルスペル形式。Tuesday
・数値。1(月)から 7(日):2
・数値。0(日)から 6(土):2
・月曜日に始まる年単位の週番号:21
となります。
指定日の曜日を取得
2018/05/01 を指定日にした場合。
1 2 3 4 5 | ・3文字のテキスト形式。<?php echo date('D', strtotime('2018-05-01')); ?><br> ・フルスペル形式。<?php echo date('l', strtotime('2018-05-01')); ?><br> ・数値。1(月)から 7(日):<?php echo date('N', strtotime('2018-05-01')); ?><br> ・数値。0(日)から 6((土):<?php echo date('w', strtotime('2018-05-01')); ?><br> ・月曜日に始まる年単位の週番号:<?php echo date('W', strtotime('2018-05-01')); ?><br> |
結果は
・フルスペル形式。Tuesday
・数値。1(月)から 7(日):2
・数値。0(日)から 6((土):2
・月曜日に始まる年単位の週番号:18
となります。
タイムスタンプと日付の取得
現在のUNIXタイムスタンプを取得
2019-01-02 03:04:05 にコードを実行した場合。
1 2 3 4 5 6 7 8 | <?php //time() echo time()."<br>\n"; //mktime() echo mktime(date('H'),date('i'),date('s'),date('n'),date('j'),date('Y'))."<br>\n"; //strtotime() echo strtotime("now")."<br>\n"; ?> |
結果は
1546365845
1546365845
となります。
また、このUNIXタイムスタンプ 1546365845 を日付に変換すると
1 2 3 | <?php echo date('Y-m-d H:i:s', 1546365845); ?> |
結果は
となります。
strtotime() で任意の日付(指定日)のUNIXタイムスタンプと日付を取得
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() で任意の日付(指定日)のUNIXタイムスタンプと日付を取得
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年11月08日