Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
strtotime()対応: PHP 4(2000)
英語形式の日時文字列を解析してUNIXタイムスタンプに変換します。『+1 week』や『next Monday』のような相対的な日時表現も解釈できます。
構文
// 日時文字列をUNIXタイムスタンプに変換します。 strtotime($datetime, $baseTimestamp);
引数
| 引数 | 概要 |
|---|---|
| $datetime | パースする日時文字列です。『"2025-04-15"』のような絶対日時や『"+1 day"』のような相対表現を指定できます。 |
| $baseTimestamp | 相対日時の基準となるタイムスタンプです。省略時は現在時刻が使われます。 |
戻り値
成功時はUNIXタイムスタンプを整数で返します。パースに失敗した場合は『false』を返します。
サンプルコード
<?php
// 日付文字列をタイムスタンプに変換します。
$ts = strtotime("2025-04-15");
echo date("Y-m-d", $ts); // 『2025-04-15』と出力されます。
// さまざまな形式の日付文字列を解析できます。
echo date("Y-m-d", strtotime("April 15, 2025")); // 『2025-04-15』と出力されます。
echo date("Y-m-d", strtotime("15 Apr 2025")); // 『2025-04-15』と出力されます。
// 相対的な日時表現を使用します。
echo date("Y-m-d", strtotime("+1 day")); // 明日の日付が出力されます。
echo date("Y-m-d", strtotime("-1 week")); // 1週間前の日付が出力されます。
echo date("Y-m-d", strtotime("+3 months")); // 3か月後の日付が出力されます。
echo date("Y-m-d", strtotime("+1 year")); // 1年後の日付が出力されます。
// 曜日を指定した表現も使えます。
echo date("Y-m-d", strtotime("next Monday")); // 次の月曜日の日付が出力されます。
echo date("Y-m-d", strtotime("last Friday")); // 前の金曜日の日付が出力されます。
// 複合的な表現も解析できます。
echo date("Y-m-d", strtotime("first day of next month")); // 来月1日の日付が出力されます。
echo date("Y-m-d", strtotime("last day of this month")); // 今月末の日付が出力されます。
// 基準タイムスタンプを指定して相対日時を計算します。
$base = strtotime("2025-01-01");
echo date("Y-m-d", strtotime("+90 days", $base)); // 『2025-04-01』と出力されます。
// 有効期限のチェックに活用できます。
$expire_date = "2025-12-31";
if (strtotime($expire_date) > time()) {
echo "有効期限内です。";
} else {
echo "有効期限が切れています。";
}
// パース失敗時の処理
$result = strtotime("無効な日付文字列");
var_dump($result); // 『bool(false)』と出力されます。
概要
『strtotime()』は英語の日時文字列をUNIXタイムスタンプに変換する関数です。ISO 8601形式だけでなく、『"next Monday"』『"last day of this month"』のような英語の自然言語に近い表現も解析できるため、日付の加減算やスケジュール処理で広く活用されています。
『+1 month』の動作には注意が必要です。1月31日に『+1 month』を適用すると、2月31日は存在しないため3月3日になります。月末の計算には『"last day of next month"』を使うか、『DateTime クラス』で明示的に制御してください。
戻り値が『false』になる場合があるため、パース結果の検証は必須です。日付フォーマットの出力には『date()』を使用します。より高度な日時操作にはオブジェクト指向の『DateTime クラス』が適しています。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。