関数・クラス解説
strtotime
version:PHP 4, PHP 5, PHP 7 (公式)英文形式の日付を Unix タイムスタンプに変換する
公式リファレンス
書式
strtotime ( string $datetime [, int $now = time() ] ) : int
説明
この関数は英語の書式での日付を含む文字列が指定されることを期待しており、 now で与えられたその形式から Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) への変換を試みます。 now が指定されていない場合は現在日時に変換します。
警告この関数が返す Unixタイムスタンプ は、タイムゾーンの情報を含んでいません。 日付/時刻の情報を含めて計算するには、 より多くの機能がある DateTimeImmutable を使うべきです。
この関数の各パラメータでは、パラメータ内でタイムゾーンを指定しない限りはデフォルトのタイムゾーンを使います。 意図的にそうする場合は別として、パラメータごとにタイムゾーンを変えてしまったりしないように気をつけましょう。 デフォルトのタイムゾーンを定義する方法については date_default_timezone_get() を参照ください。
パラメータ
- datetime
- 日付/時刻 文字列。有効な書式については 日付と時刻の書式 で説明しています。
- now
- 返される値を計算するために使用されるタイムスタンプ。
返値
成功時はタイムスタンプ、そうでなければ FALSE を返します。
エラー
すべての日付/時刻関数は、有効なタイムゾーンが設定されていない場合に E_NOTICEを発生させます。また、システム設定のタイムゾーンあるいは環境変数TZ を使用した場合には E_STRICTあるいは E_WARNING を発生させます。date_default_timezone_set() も参照ください。
注意
注意: 年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、 70-99 なら 1970-1999 にそれぞれ変換されます。 32 ビットシステム上での相違点 (2038-01-19 03:14:07 までの日付しか表せない) については以下の注意を参照ください。
注意: タイムスタンプの有効な範囲は、通常、Fri, 13 Dec 1901 20:45:54 UTC から Tue, 19 Jan 2038 03:14:07 UTC までです (これらは、32 ビット符号付整数の最大及び最小に一致します)。 全てのプラットフォームが負のタイムスタンプをサポートしている わけではありませんので、PHP 5.1.0 より前のバージョンでは、日付の範囲が Unix エポック以前にはならないかも知れません。 これは、例えば Windows やいくつかの Linux ディストリビューション、 いくつかの他のオペレーティングシステムでは 1970 年 1 月 1 日以前の日付では動作しない事を意味しています。 64 ビット版の PHP では、タイムスタンプの有効範囲は事実上無制限です。 というのも、64 ビットでは過去側も未来側も約 2930 億年を表せるからです。
注意: m/d/y あるいは d-m-y といった書式の曖昧さを解決する際には、区切り文字を利用します。スラッシュ (/) で区切られている場合はアメリカ風の m/d/y とみなし、ダッシュ (-) あるいはドット (.) で区切られている場合はヨーロッパ風の d-m-y であるとみなします。 しかし、年を二桁で表して区切り文字がダッシュ (-) である場合は、 y-m-d であるとみなします。 このような曖昧さを避けるためにも、ISO 8601 形式 (YYYY-MM-DD) を使うか、可能であれば DateTime::createFromFormat() を使うことを推奨します。
注意: この関数を使って日付の足し算や引き算を行うことはおすすめできません。 PHP 5.3 以降なら DateTime::add() や DateTime::sub() を、そして PHP 5.2 なら DateTime::modify() を使いましょう。警告 この関数が返す Unixタイムスタンプ は、タイムゾーンの情報を含んでいません。 日付/時刻の情報を含めて計算するには、 より多くの機能がある DateTimeImmutable を使うべきです。
サンプル
例1 A strtotime() の例
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
例2 失敗のチェック
$str = 'Not Good';
// PHP 5.1.0 以前では、false の代わりに -1 と比較する
if (($timestamp = strtotime($str)) === false) {
echo "The string ($str) is bogus";
} else {
echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール