ホーム > PHP関数リファレンス > 日付・時間系 > php mktime 日時からタイムスタンプを取得する
UPDATE:2023年06月20日

php mktime 日時からタイムスタンプを取得する

php mktime 日時からタイムスタンプを取得する | wepicks!
PHP4 PHP5 PHP7

php mktime 指定日時からUNIXタイムスタンプを取得

mktime() は、指定日時を UNIXタイムスタンプ に変換し取得することが出来ます。指定日時は左から mktime( 時, 分, 秒, 月, 日, 年 )の順番で指定することが出来ます。右から順番に省略することが可能で、省略した場合、ローカル日時の現在の日時がセットされます。

タイムゾーンの指定
php.ini に記述する場合
date.timezone = Asia/Tokyo
スクリプトに記述する場合
<?php date_default_timezone_set ('Asia/Tokyo'); ?>
※日本時間に合わせます。タイムゾーンに誤りがあると日付系の関数やクラスでエラーが起こる場合があります。

mktime() 書式

書式 mktime()
int UNIXタイムスタンプ = mktime([int $hour, int $minute, int $second, int $month, int $day, int $year]);
//返り値は数値(int)、引数は右から順番に省略可能、失敗時は FALSE を返す

日本語書式 mktime()
指定日時のUNIXタイムスタンプ = mktime(時, 分, 秒, 月, 日, 年);

説明指定日時からUNIXタイムスタンプを取得
引数int $hour[時]:$year $month $day で指定した 日 の 0時 からスタートする [時] を指定。負の数値を指定した場合、0時 から前日へ遡った時間になります。23 より大きい数値の場合は翌日以降へ進んで時間を表します。
引数int $minute[分]:$hour で指定した 時 の 0分 から数えた [分] を指定。負の数値を指定した場合、前の時間へ遡った時間になります。59 より大きい数値は次の時間以降へ進んで時間を表します。
引数int $second[秒]:$minute で指定した 分 の 0秒 から数えた [秒] を指定。負の数値を指定した場合、前の時間へ遡った時間になります。59 より大きい数値は次の分以降へ進んで時間を表します。
引数int $month[月]:前年末から数えた月数です。1 ~ 12 はそれぞれ 1月 ~ 12月 を示します。負の数値を指定した場合、前年の月を逆へ遡ります。-1 は 前年11月になります。0 は前年の 12月 となります。12より大きい数値を指定した場合、翌年へ進んで月を表します。
引数int $day[日]:前月末から数えた日数です。1 は 1日、31 は 31日。ですが、月によって 28、29、30 など日数が異なります。負の数値を指定した場合、前の月へ遡った日数になります。0 は前月の末日になります。該当月の日数より大きい数値は次の月以降へ進んで日数を表します。
引数int $year[年]:年。2桁 または 4桁 の値を指定できます。0 – 69 の間の値は 2000 – 2069 に、70 – 100 は 1970 – 2000 に該当します。
返り値int UNIXタイムスタンプUNIXタイムスタンプの数値。

サンプル



データ型 引数 や 返り値 のデータ型の説明

引数 や 返り値内容(引数 | 返り値)
string文字列型 を受け入れる。 | 文字列型 を返す。
int整数型 を受け入れる。 | 整数型 を返す。
float浮動小数点数型 を受け入れる。 | 浮動小数点数型 を返す。
bool論理型 を受け入れる。 | 論理型 を返す。
number整数型 または 浮動小数点数型 を受け入れる。 | 整数型 または 浮動小数点数型 を返す。
array配列型 を受け入れる。 | 配列型 を返す。
objectオブジェクト型 を受け入れる。 | オブジェクト型 を返す。
array|object配列型 または オブジェクト型 を受け入れる。 | 配列型 または オブジェクト型 を返す。
mixed複数の データ型 を受け入れる(パラメーター)、或いは、返す(返り値)ことが可能。全てのデータ型ではありません。例えば gettype()関数 は全ての型を受け入れますが、一方、str_replace()関数 は、文字列型 と 配列型 のみを受け入れます。また、reset()関数 や end()関数 は、返り値に 配列型 と 論理型(FALSE)を返します。
voidパラメータ一覧で void が使用されている場合、その関数がパラメータを受け付けないことを表します。 | 返り値の型が void である場合、返り値に意味がないことを表します。
callbackcallback 疑似型がこのドキュメントで使われていたのは、PHP 5.4 で callable タイプヒントが導入される前のことでした。両者はまったく同じ意味です。

◆ mktime() 内容

UNIXタイムスタンプの取得

mktime() は、指定日時を UNIXタイムスタンプ に変換し取得することが出来ます。指定日時は左から mktime( 時, 分, 秒, 月, 日, 年 )の順番で指定することが出来ます。右から順番に省略することが可能で、省略した場合、ローカル日時の現在の日時がセットされます。mktime(); と引数をすべて省略するとエラーが発生するので、現在のUNIXタイムスタンプを取得する場合は time()関数 を利用しましょう。

◆ mktime() パラメーター

内容
int $hour[]:$year $month $day で指定した 日 の 0時 からスタートする [時] を指定。負の数値を指定した場合、0時 から前日へ遡った時間になります。23 より大きい数値の場合は翌日以降へ進んで時間を表します。



0 mktime(0,0,0,12,31,2020); は 2020/12/31 00:00:00 となります。
23 mktime(23,0,0,12,31,2020); は 2020/12/31 23:00:00 となります。
-2 mktime(-2,0,0,12,31,2020); は 2020/12/30 22:00:00 となります。
24 mktime(24,0,0,12,31,2020); は 2021/01/01 00:00:00 となります。
25 mktime(25,0,0,12,31,2020); は 2021/01/01 01:00:00 となります。
int $minute[]:$hour で指定した 時 の 0分 から数えた [分] を指定。負の数値を指定した場合、前の時間へ遡った時間になります。59 より大きい数値は次の時間以降へ進んで時間を表します。



0 mktime(0,0,0,12,31,2020); は 2020/01/01 00:00:00 となります。
59 mktime(0,59,0,12,31,2020); は 2020/01/01 23:00:00 となります。
-300 mktime(0,-300,0,12,31,2020); は 2019/12/31 22:00:00 となります。
300 mktime(0,300,0,12,31,2020); は 2020/01/02 01:00:00 となります。
int $second[]:$minute で指定した 分 の 0秒 から数えた [秒] を指定。負の数値を指定した場合、前の時間へ遡った時間になります。59 より大きい数値は次の分以降へ進んで時間を表します。



0 mktime(0,0,0,12,31,2020); は 2020/12/31 00:00:00 となります。
59 mktime(0,0,59,12,31,2020); は 2020/12/31 00:00:59 となります。
-1000 mktime(0,0,-1000,12,31,2020)v は 2020/12/30 23:43:20 となります。
1000 mktime(0,0,1000,12,31,2020); は 2020/12/31 00:16:40 となります。
int $month[]:前年末から数えた月数です。1 ~ 12 はそれぞれ 1月 ~ 12月 を示します。負の数値を指定した場合、前年の月を逆へ遡ります。-1 は 前年11月になります。0 は前年の 12月 となります。12より大きい数値を指定した場合、翌年へ進んで月を表します。



1 mktime(0,0,0,1,31,2020); は 2020/01/31 00:00:00 となります。
12 mktime(0,0,0,12,31,2020); は 2020/12/31 00:00:00 となります。
-24 mktime(0,0,0,-24,31,2020); は 2017/12/31 00:00:00 となります。
24 mktime(0,0,0,24,31,2020); は 2021/12/31 00:00:00 となります。
int $day[]:前月末から数えた日数です。1 は 1日、31 は 31日。ですが、月によって 28、29、30 など日数が異なります。負の数値を指定した場合、前の月へ遡った日数になります。0 は前月の末日になります。該当月の日数より大きい数値は次の月以降へ進んで日数を表します。



1 mktime(0,0,0,12,1,2020); は 2020/12/01 00:00:00 となります。
31 mktime(0,0,0,12,31,2020); は 2020/12/31 00:00:00 となります。
-100 mktime(0,0,0,12,-100,2020); は 2020/08/22 00:00:00 となります。
100 mktime(0,0,0,12,100,2020); は 2021/03/10 00:00:00 となります。
int $year[]:年。2桁 または 4桁 の値を指定できます。0 – 69 の間の値は 2000 – 2069 に、70 – 100 は 1970 – 2000 に該当します。



1970 mktime(0,0,0,12,31,1970); は 1970/12/31 00:00:00 となります。
2020 mktime(0,0,0,12,31,2020); は 2020/12/31 00:00:00 となります。
3000 mktime(0,0,0,12,31,3000); は 3000/12/31 00:00:00 となります。

◆ mktime() 返り値

int
数値のUNIXタイムスタンプが返されます。失敗すると FALSE が返されます。

int UNIXタイムスタンプ。

◆ mktime() 変更履歴

PHPバージョン変更内容
7.0.0is_dst パラメータが削除されました。
5.3.0is_dst パラメータを使用した場合 E_DEPRECATED をスローするようになりました。
5.1.0タイムゾーンを設定する is_dst パラメータは廃止されました。
5.1.0mktime() は引数省略可能ですが、引数なしでコールすると E_STRICT notice のエラーが発生します。現在のUNIXタイムスタンプを取得する場合 time() 関数を使用しましょう。
5.1.0タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。

mktime() サンプル

実行結果

mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(23,0,0,12,31,2020) は 2020/12/31 23:00:00 の意
mktime(-2,0,0,12,31,2020) は 2020/12/30 22:00:00 の意
mktime(24,0,0,12,31,2020) は 2021/01/01 00:00:00 の意
mktime(25,0,0,12,31,2020) は 2021/01/01 01:00:00 の意


mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(0,59,0,12,31,2020) は 2020/12/31 00:59:00 の意
mktime(0,-300,0,12,31,2020) は 2020/12/30 19:00:00 の意
mktime(0,300,0,12,31,2020) は 2020/12/31 05:00:00 の意


mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(0,0,59,12,31,2020) は 2020/12/31 00:00:59 の意
mktime(0,0,-1000,12,31,2020) は 2020/12/30 23:43:20 の意
mktime(0,0,1000,12,31,2020) は 2020/12/31 00:16:40 の意


mktime(0,0,0,1,31,2020) は 2020/01/31 00:00:00 の意
mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(0,0,0,-24,31,2020) は 2017/12/31 00:00:00 の意
mktime(0,0,0,24,31,2020) は 2021/12/31 00:00:00 の意


mktime(0,0,0,12,1,2020) は 2020/12/01 00:00:00 の意
mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(0,0,0,12,-100,2020) は 2020/08/22 00:00:00 の意
mktime(0,0,0,12,100,2020) は 2021/03/10 00:00:00 の意


mktime(0,0,0,12,31,1970) は 1970/12/31 00:00:00 の意
mktime(0,0,0,12,31,2020) は 2020/12/31 00:00:00 の意
mktime(0,0,0,12,31,3000) は 3000/12/31 00:00:00 の意


タグ(=記事関連ワード)

タグ: , , ,

日付

投稿日:2020年6月30日
最終更新日:2023年06月20日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpfunction-date-mktime/trackback/

page top