PHPでmktime()関数を使用し特定の日時のUnixタイムスタンプを取得する

スポンサーリンク

PHPでmktime()関数を使用してみます。

mktime()関数は、括弧内で渡した引数,パラメーター(特定の日時)をUnixタイムスタンプとして取得することができます。

なお、引数,パラメーターなしで mktime()関数を呼び出すことは推奨されていません。

■mktime()関数の構文

mktime(時、分、秒、月、日、年)

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■PHPでmktime()関数を使用しUnixタイムスタンプを取得する

では、早速PHPでmktime()関数を使用しUnixタイムスタンプを取得してみます。

■コード

<?php 
echo mktime(7,0,0,4,23,2021);
?>

mktime()関数を使用する場合は、簡単です。今回はmktime()関数を使用し、括弧内の引数,パラメーターに指定した日時を渡します。今回は「2021年4月23日の午前7時0分0秒」を指定しています。これでmktime()関数を使用することができます。

指定後、取得されたUnixタイムスタンプを出力するために、echo文を使用します。

■実行

では、このスクリプトを「time_stamp_1.php」という名前で保存し、実行させてみます。

実行させてみると、mktime()関数を使用し、今回指定した日時を「1619161200」というUnixタイムスタンプで出力することができました。

■date()関数でUnixタイムスタンプを人が読める形式の日付に変換する

では、次にdate()関数を使用し、mktime()関数を使用して出力された「1619161200」というUnixタイムスタンプを、検証のため、人が読める形式の日付に変換してみます。

■コード

<?php
$timestamp = 1619161200;
echo(date("Y年m月d日 H時i分s秒",$timestamp));
?>

人が読める形式の日付に変換するには、timestampという変数を宣言し、その中に出力された「1619161200」というUnixタイムスタンプを入れ格納します。

その後、date()関数を使用し、括弧内の第1の引数,パラメーターに、人が読める形式の日付(フォーマット)を指定します。第2の引数,パラメーターには、timestampという変数を指定します。指定後、echo文を使用し人が読める形式の日付を出力します。

■実行

では、このスクリプトを「time_stamp_2.php」という名前で保存し、実行させてみます。

実行させてみると、date()関数を使用し、「1619161200」というUnixタイムスタンプを、人が読める形式の日付に変換させることができました。また今回mktime()関数に引数,パラメーターとして渡した日時であることも確認できました。

■引数,パラメーターをすべて省略した(引数,パラメーターがない)場合

では、次に実験として、引数,パラメーターをすべて省略した(引数,パラメーターがない)場合はどうなるのかやってみます。

■コード

<?php 
echo mktime();
?>

■実行

では、このスクリプトを「time_stamp_3.php」という名前で保存し、実行させてみます。

Deprecated: mktime(): You should be using the time() function instead in C:\wamp64\www\project\time_stamp_3.php on line 2

実行させてみると、「Deprecated(非推奨)」と出力されました。Deprecated(非推奨)の内容を確認すると、「mktime()関数の代わりに time() 関数を使用する必要があります。」というものです。Deprecated(非推奨)は、「エラー」ではなく、あくまで非推奨で、mktime()関数を使用し、Unixタイムスタンプが出力されています。

今回の実験でわかったことは、引数をすべて省略した(引数,パラメーターがない)場合はmktime()関数は、time()と同様に、現在の日付と時刻に対応するUNIXタイムスタンプが出力されるということです。

なお、mktime()関数は、引数はいくつでも省略することができ、現在の時刻に対応する値が代わりに使用されます。

コメント

タイトルとURLをコピーしました