本記事では、phpで任意の日時のタイムスタンプを取得することができる
mktime関数の使い方を解説していく。
mktime関数とは
mktime関数とは、
phpで任意の日時のタイムスタンプを取得するためのメソッドだ。
$time = mktime(0, 0, 0, 1, 2, 2022);
echo $time;
//実行結果
1641081600
mktime関数の使い方
mktime関数は以下のように記述する。
変数 = mktime(hour ,minute ,second ,month ,day ,year ,is_dst);
引数には第1引数から順番に、
時間、分、秒、月、日、年, サマータイムフラグを設定することが可能だ。
引数を設定しない場合は、
現在日時から指定された引数の日時だけ置き換わって取得することが可能だ。
is_dstはサマータイムかどうかのフラグを設定可能だ。
サマータイムの場合は1、違うなら0、不明の場合は-1を設定できる。
mktime関数のサンプルプログラム
では実際にmktime関数を使って、
指定した日時のタイムスタンプを取得してみる(実行日付は2022年5月4日)。
<?php
$time = mktime(8);
echo date('Y年m月d日h時i分s秒', $time) . "\n";
$time = mktime(10, 11, 12);
echo date('Y年m月d日h時i分s秒', $time) . "\n";
$time = mktime(0, 0, 0, 1, 2, 2022);
echo date('Y年m月d日h時i分s秒', $time) . "\n";
実行結果
2022年05月04日08時57分18秒
2022年05月04日10時11分12秒
2022年01月02日12時00分00秒
上から、
- 時間
- 時間、分、秒
- 時間、分、秒、月、日、年
を指定したサンプルだ。
実行結果の出力はdate関数を使って「タイムスタンプ→日時」の変更を分かりやすくしている。
指定していない引数の部分は実行日時で置き換えられて取得されているのが分かるだろう。
このように、mktime関数を使えば、自分の任意の日時のタイムスタンプを生成することが可能だ。
mktime関数は日付処理に関する関数だ。
同じく日付処理に関する関数のうちよく使うものに、
date関数とstrtotime関数が存在する。
特にdate関数はタイムスタンプを使用することでより柔軟に日付処理をすることが可能な関数なので、mktimeと併せて覚えておくと良いだろう。
関連記事
https://www.php.net/manual/ja/function.date.php
https://www.php.net/manual/ja/function.time.php
https://www.php.net/manual/ja/function.strtotime.php
https://www.php.net/manual/ja/function.mktime.php
タイムスタンプとは、 1970年1月1日0時0分から数えた通算の秒数のことだ。
例えば、本記事執筆時点での現在時刻は「1651574236」であり、
これは1970年1月1日0時0分から数えた秒数ということになる。
任意の日時ではなく、単に現在時刻のタイムスタンプを取得したい時は、
time()関数を使用することで、自動的に現在時刻のタイムスタンプを取得できる。