PHP strtotime() 関数

英文テキストの日付時刻を Unix タイムスタンプに解析する:

<?php
echo(strtotime("now") . "<br>");
echo(strtotime("15 October 1980") . "<br>");
echo(strtotime("+5 hours") . "<br>");
echo(strtotime("+1 week") . "<br>");
echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");
echo(strtotime("next Monday") . "<br>");
echo(strtotime("last Sunday"));
?>

実行例

定義と用法

strtotime() 関数は、英語のテキストの日付または時間の記述を、Unix タイムスタンプ(1970年1月1日 00:00:00 GMTからの秒数)に解析します。

注意:年が2桁のフォーマットで表示される場合、値 0-69 は 2000-2069 に、値 70-100 は 1970-2000 にマッピングされます。

注意:m/d/y または d-m-y フォーマットの日付にご注意ください。セパレータが斜線(/)の場合は、アメリカの m/d/y フォーマットを使用してください。セパレータがハイフン(-)または点(.)の場合は、ヨーロッパの d-m-y フォーマットを使用してください。潜在的なエラーを避けるために、可能な限り YYYY-MM-DD フォーマットを使用するか、date_create_from_format() 関数を使用してください。

文法

strtotime(time,now);
パラメータ 説明
time 必須。日期間/時間文字列を指定します。
now オプション。返り値を計算するために使用されるタイムスタンプを指定します。このパラメータを省略すると、現在の時間が使用されます。

技術的詳細

返り値: 成功した場合、タイムスタンプを返しますが、失敗した場合、FALSE を返します。
PHP バージョン: 4+

更新ログ:

5.3.0: 現在、相対時間の形式、例えば「今週」、「先週」、「前週」、「次週」は、週が月曜日から日曜日までと規定されていますが、現在の日期間/時間から前後7日を基にしています。
5.3.0 PHP 5.3.0 以前では、24:00 は有効な形式ではありませんでしたが、strtotime() は FALSE を返していました。
5.2.7 これ以前のバージョンでは、特定の月の特定の日を要求し、その日がその月の最初の日であれば、誤って1週間を加えることがありましたが、これが修正されました。
5.1.0 失敗した場合、FALSE を返します(これ以前のバージョンでは -1 を返します)および、E_STRICTおよびE_NOTICEのタイムゾーンエラーが追加されました。
5.0.2 現在、「now」や他の相対時間は現在の時間に基づいて正確に計算されますが、今日の真夜中の時間に基づいて計算されません。
5.0.0 マイクロ秒(ただし、マイクロ秒の数は通常無視されます)。
4.4.0 PHP 4.4 以前では、「next」は誤って +2 として計算されていました。この問題に対する一般的な解決策は「+1」を使用することです。