PHPのstrtotime()関数の使い方を基本から解説!日付文字列をUnixタイムスタンプに変換
PHPのstrtotime()関数は、英語形式で記述された日付や時刻の文字列を解析し、Unixタイムスタンプに変換するための関数です。変換が成功すればタイムスタンプを返し、失敗した場合はFALSEを返します。なお、PHP 5.1.0より前のバージョンでは、失敗時に-1を返す仕様でした。
この関数は「2018年6月20日」のような具体的な日付だけでなく、「now(現在)」や「+10 hours(10時間後)」といった相対的な表現も解析できるため、柔軟な日付処理に活用できます。
構文
strtotime(time, now)
パラメータ
time − 解析対象となる日付・時刻の文字列を指定します。
now − 返り値を計算する際の基準となるタイムスタンプを指定します。
戻り値
strtotime()関数は、解析に成功した場合はタイムスタンプを、失敗した場合はFALSEを返します。PHP 5.1.0より前のバージョンでは、失敗時に-1を返していました。
使用例①:日付文字列を変換する
以下は、日付文字列「June 20, 2018」をUnixタイムスタンプに変換し、date()関数で「Y-m-d」形式にフォーマットして表示する例です。
<?php $timestamp = strtotime( "June 20, 2018" ); print date( 'Y-m-d', $timestamp ); ?>
出力結果
2018-06-20
使用例②:さまざまな形式の文字列を渡す
続いて、「now(現在時刻)」や特定の日付、相対的な時間指定など、複数の形式の文字列をstrtotime()に渡した場合の動作を確認してみましょう。
<?php
echo(strtotime("now") . "<br>");
echo(strtotime("10 March 2018") . "<br>");
echo(strtotime("+10 hours") . "<br>");
?>
出力結果
1539235161 1520640000 1539271161
ポイントまとめ
- strtotime()は英語形式の日付文字列をUnixタイムスタンプに変換できる。
- 「now」や「+10 hours」のような相対的な表現も解析可能。
- 解析結果はサーバーのタイムゾーン設定の影響を受けるため、必要に応じてdate_default_timezone_set()などでタイムゾーンを明示しておくと安心です。
- 変換に失敗した場合はFALSEが返るため、実際の開発では戻り値のチェックを行うことが推奨されます。
-
PHPのlog()関数とは?自然対数の計算方法と使い方を解説
定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l
-
PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説
lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し