strtotime

関数の概要

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 関数と組み合わせることで多様な日付操作が行えます。初心者でも直感的に使いやすく、実務でも日付処理の基本として重宝される機能です。