strtotime
| 解説 | 英文形式の日時をUNIXタイムスタンプに変換する |
|---|---|
| 書式 | int strtotime( string time [, int now ] ) |
int strtotime( string 日時 [, int タイムスタンプ ] ) |
|
| 引数 |
time
英文形式の日時
|
now
タイムスタンプ
|
|
| 返値 | 英文形式の日時から生成されたタイムスタンプ/-1(PHP5.1.0以前)またはFALSE(PHP5.1.0以降) |
strtotime()は引数で指定された文字列をタイムスタンプに変換します。
生成されたタイムスタンプを返します。指定された文字列が解釈不能な場合やタイムスタンプの最大値を超えた場合は-1を返します。
time日時英文形式の日時を指定します。指定方法は後述します。
nowタイムスタンプタイムスタンプで日時を指定します。省略された場合は現在時刻が適用されます。
strtotime()の日時指定はGNUという日付記法に準拠します。詳しくはGNUマニュアルというGNU全般のマニュアルの中の Date Input Formats に記載されています。
日本語サイトも探してみましたので参考にして下さい。
英文形式の指定方法
まず、英文形式の書式が、
(「時:分:秒」)「日」「月の名前」「年」「時:分:秒」
という形式になります。最初の「時:分:秒」に()が付いていますが、これは省略可能を意味します。
| 用語 | 使用方法 |
|---|---|
| 時:分:秒 | 書式の一番前か一番後ろのどちらかに記述します。省略した場合は00:00:00として扱われます。 |
| 日 | 日付数値で指定します。 01 という形式でも 1 という形式でも扱う事ができます。 |
| 月の名前 | 月を英語で指定します。先頭3文字、フルスペルの両方が利用可能です。 |
| 年 | 西暦で指定します。4桁、2桁ともに利用可能です。2桁の場合は 70 ~ 99 を 1970年 ~ 1999年 まで、0 ~ 69 を 2000年 ~ 2069年として扱います。 |
さらに、weekやhourといったような単語を指定する事もでき、これらは上記の書式の前後に書くことができます。
この単語は演算をする事ができ、例えば
+ 1 hour
とした場合は1時間後を表わします。ちょっと便利ですね。ここに挙げるもの以外にも演算に使用できる単語がありますが、とりあえず代表的なものを紹介します。その他は前述のマニュアルを参照して下さい。
| 単語 | 使用方法 |
|---|---|
day |
日を表わす |
week |
日を1週間単位で表わす |
month |
月を表わす |
year |
年を表わす |
hour |
時刻を表わす |
minute |
分を表わす |
second |
秒を表わす |
now |
現在時刻を表わす |
tomorrow |
+1 day と同様 つまり、「明日」 |
yesterday |
-1 day と同様 つまり、「昨日」 |
first |
+1 と同様 |
next |
+1 と同様 HTML_KOME但しバージョン4.4より前のPHPでは、誤って+2として計算されます。 |
last |
-1 と同様 |
サンプルスクリプト
簡単な利用例
- $now = strtotime("now"); // now は現在時刻を意味する
- // tomorrow は +1 day つまり明日を意味する
- $tomorrow = strtotime("tomorrow");
- echo '現在時刻:'.date( 'Y年m月d日 H時i分s秒', $now )."<br />\n";
- echo '明日の日付:'.date( 'Y年m月d日', $tomorrow );
出力結果
現在時刻:2019年03月16日 22時13分21秒
明日の日付:2019年03月17日
明日の日付:2019年03月17日
日時を表わす単語の簡単な利用例
英文形式で日付を指定
- //英文形式の書式を指定してタイムスタンプを取得する
- $timestamp = strtotime("05 Jun 2004");
- echo date( 'Y/m/d (l)', $timestamp );
出力結果
2004/06/05 (Saturday)
日時の演算
- $timestamp = strtotime("+1 week"); // 1週間後を指定
- echo date( 'Y年m月d日', $timestamp );
出力結果
2019年03月23日
演算で1週間後の日付を求める事ができます。
複数の演算
- // 1週間と2日、4時間2分後
- $timestamp = strtotime("+1 week 2 days 4 hours 2 seconds");
- echo date( 'Y年m月d日 H時i分s秒', $timestamp );
出力結果
2019年03月26日 02時13分23秒
next、lastの使用方法
- $timestamp1 = strtotime("last Monday"); //前の月曜日
- $timestamp2 = strtotime("next Month"); //再来月
- echo date( 'Y年m月d日', $timestamp1 )."<br />\n";
- echo date( 'Y年m月d日', $timestamp2 );
出力結果
2019年03月11日
2019年04月16日
2019年04月16日





