(PHP) mktime関数の使い方【タイムスタンプを取得する】

(PHP) mktime関数の使い方【タイムスタンプを取得する】

 

 

本記事では、phpで任意の日時のタイムスタンプを取得することができる
mktime関数の使い方を解説していく。

 

 

mktime関数とは

mktime関数とは、
phpで任意の日時のタイムスタンプを取得するためのメソッドだ。

$time = mktime(0, 0, 0, 1, 2, 2022);
echo $time;

//実行結果
1641081600

 

タイムスタンプとは

タイムスタンプとは、 1970年1月1日0時0分から数えた通算の秒数のことだ。

例えば、本記事執筆時点での現在時刻は「1651574236」であり、
これは1970年1月1日0時0分から数えた秒数ということになる。

任意の日時ではなく、単に現在時刻のタイムスタンプを取得したい時は、
time()関数を使用することで、自動的に現在時刻のタイムスタンプを取得できる。

echo time();

// 実行結果
1651574236

 

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秒

 

上から、

  1. 時間
  2. 時間、分、秒
  3. 時間、分、秒、月、日、年

 

を指定したサンプルだ。
実行結果の出力はdate関数を使って「タイムスタンプ→日時」の変更を分かりやすくしている。

指定していない引数の部分は実行日時で置き換えられて取得されているのが分かるだろう。

このように、mktime関数を使えば、自分の任意の日時のタイムスタンプを生成することが可能だ。

 

mktimeと併せて使う

mktime関数は日付処理に関する関数だ。

同じく日付処理に関する関数のうちよく使うものに、
date関数strtotime関数が存在する。

特にdate関数はタイムスタンプを使用することでより柔軟に日付処理をすることが可能な関数なので、mktimeと併せて覚えておくと良いだろう。

(PHP) 日付関数(date, strtotime)の使い方

 

関連記事

(PHP) 日付関数(date, strtotime)の使い方

 

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

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。