関数の概要
PHPのstrtotime関数は、英語で書かれた日付や時刻の文字列をUNIXタイムスタンプ(1970年1月1日からの経過秒数)に変換するための関数です。日付や時刻の文字列を扱いやすい数値に変換することで、日付の計算や比較などを簡単に行うことができます。
パラメータの説明
time(必須): 解析する日付・時刻の文字列を指定します。例として「now」「+1 day」「2024-06-01」などがあります。baseTimestamp(オプション): 文字列の計算の基準となるUNIXタイムスタンプを指定します。指定しない場合は現在の時刻が使われます。
戻り値
成功した場合、指定した日時を表すUNIXタイムスタンプ(整数値)を返します。失敗すると false を返します。返されたタイムスタンプは date 関数などで読みやすい形式に変換して使用します。
使用例
1. 現在時刻の取得
<?php
$timestamp = strtotime("now");
echo date("Y-m-d H:i:s", $timestamp);
// 出力例: 2024-06-10 12:34:56
?>
「now」は現在の日付と時刻を表します。strtotime(“now”)は現在時刻のUNIXタイムスタンプを返します。
2. 1日後の日付を取得
<?php
$timestamp = strtotime("+1 day");
echo date("Y-m-d", $timestamp);
// 出力例: 2024-06-11
?>
「+1 day」は現在から1日後の日付を表します。このように未来や過去の日付計算も簡単に行えます。
3. 特定の日付を指定してタイムスタンプを取得
<?php
$timestamp = strtotime("2024-12-31 23:59:59");
echo date("Y/m/d H:i:s", $timestamp);
// 出力例: 2024/12/31 23:59:59
?>
「2024-12-31 23:59:59」のように、特定の日時を文字列で指定してタイムスタンプに変換できます。
4. 基準日時を指定して相対的に計算する
<?php
$baseTime = strtotime("2024-01-01");
$timestamp = strtotime("+1 month", $baseTime);
echo date("Y-m-d", $timestamp);
// 出力例: 2024-02-01
?>
2つ目のパラメータに基準日時のUNIXタイムスタンプを指定することで、その日時からの相対計算ができます。
関連する関数
date: タイムスタンプを指定したフォーマットで日付・時刻文字列に変換する。time: 現在のUNIXタイムスタンプを取得する。DateTime: より柔軟かつオブジェクト指向で日付・時刻を扱うクラス。
まとめ
PHPの strtotime 関数は、文字列として表現された日付や時刻をUNIXタイムスタンプに変換する便利な関数です。簡単な相対日付計算や特定の日付の解析ができ、date 関数と組み合わせることで多様な日付操作が行えます。初心者でも直感的に使いやすく、実務でも日付処理の基本として重宝される機能です。
