【PHP】日付・時刻(タイムスタンプ)を取得する関数の使い方
【PHP】 TIME関数の使い方(タイムスタンプを取得する)
php3~ で使用できます。
TIME関数 : 書式
time ()戻り値:タイムスタンプ
TIME関数はタイムスタンプを返します。引数は指定できません。
タイムスタンプは1970年1月1日の00:00:00からの通算秒です。
TIME関数 : 使用例
- タイムスタンプを取得する echo time(); →「1592518278」を出力
【PHP】 MICROTIME関数の使い方(タイムスタンプをマイクロ秒まで取得する)
php3~ で使用できます。
MICROTIME関数 : 書式
microtime ( [TRUE] )戻り値:
引数省略時 = マイクロ秒までのタイムスタンプ文字列(指数+半角スペース+整数)
引数TRUE = float型のタイムスタンプ(PHP5~)
引数省略時 = マイクロ秒までのタイムスタンプ文字列(指数+半角スペース+整数)
引数TRUE = float型のタイムスタンプ(PHP5~)
MICROTIME関数はタイムスタンプをマイクロ秒まで取得します。取得する値は文字列で「0.34454400 1093522899」のような値です。前半は指数部、後半が整数部、半角スペースで区切られています。そのまま使うには少々不便なので、explode関数で2つの要素に分割して変換すると数値として利用できます。
MICROTIME関数 : 使用例
- タイムスタンプをマイクロ秒まで取得する echo microtime(); →「0.34454400 1093522899」を出力
- タイムスタンプを float で取得するecho microtime(TRUE); →「1195550803.47」を出力
- microtime関数の戻り値を数値に変換する$array = explode(" ", microtime());
$mtime = $array[0] + $array[1]; →変数$mtimeに「1093581482.9253」をセット
【PHP】 MKTIME関数の使い方(タイムスタンプを取得する)
php3~ で使用できます。
MKTIME関数 : 書式
書式:
mktime ( [① [,② [,③ [,④ [,⑤ [,⑥ [,⑦]]]]]]] )
タイムスタンプ
mktime ( [① [,② [,③ [,④ [,⑤ [,⑥ [,⑦]]]]]]] )
引数:
①時 ②分 ③秒 ④月 ⑤日 ⑥年
⑦サマータイムの場合は 1、違う場合は 0, 不明の場合は -1
タイムスタンプ
MKTIME関数はタイムスタンプを取得します。取得したタイムスタンプは、DATE関数や後述のGETDATE関数など、タイムスタンプを引数として受け取る関数などで使われます。引数は下位の要素から省略可能です。例えば、「年月日」をまとめて省略できますが、最初の引数である「時」を省略して「分、秒」を指定することはできません。
引数を構成する日時に「1月0日」のような日付を指定すると「12月31日」のように正しい日付に自動調整されます。
【PHP・日付関数】 DATE関数の使い方(日時を変換する)
DATE関数は日付時刻をフォーマット変換します。2番目の引数は、任意の日付時刻を指定できます。指定を省略すると現在の日付時刻が処理対象になります。変換の書式、変換可能なフォーマット文字の種類、それらの使用例と共にわかりやすく解説しています。
MKTIME関数 : 使用例
- タイムスタンプを取得する echo mktime(); →「1093522439」を出力
- 指定時刻のタイムスタンプを取得するecho mktime(12, 0, 0); →「1093489200」を出力
<解説>
時刻のみを指定(ここでは、「12:00:00」)すると、現在の日付の指定時刻のタイムスタンプが取得されます。 - 前月末日のタイムスタンプを取得する$int = mktime(0, 0, 0, 1, 0, 2020));
echo date("Y/m/d", $int); →「2019/12/31」を出力<解説>
範囲外の日付を指定すると、正しい日付に自動調整されます。これを利用して前月の末日を取得するには、当月の0日、すなわち 0日 を指定します。
【PHP】 STRTOTIME関数の使い方(英文形式の日付をタイムスタンプに変換する)
php3.0.12~ で使用できます。
STRTOTIME関数 : 書式
strtotime ( 日付文字列 [,計算に使うタイムスタンプ] )戻り値:タイムスタンプ、失敗した場合はFALSE
STRTOTIME関数は、英文形式の日付をタイムスタンプに変換します。
STRTOTIME関数 : 使用例
- 日付をタイムスタンプに変換する echo strtotime("2020/6/19"); →「1592492400」を出力
- 昨日日付を取得するecho date("Y/m/d", strtotime("-1 day")); →「2020/6/18」を出力
- 今日の日付を取得するecho date("Y/m/d", strtotime("now"));; →「2020/6/19」を出力
- 明日の日付を取得するecho date("Y/m/d", strtotime("+1 day")); →「2020/6/20」を出力
<解説>
srtotime関数の引数に「-n day」「+n day」のような引数を指定すると「n日前」「n日後」のタイムスタンプを取得できます。 - 前後2日の日付を取得するfor ($i=-2; $i<=2; $i++){
echo date("Y/m/d", strtotime("+$i day")) . " ";
}
出力結果
2020/06/17 2020/06/18 2020/06/19 2020/06/20 2020/06/21
【PHP】GETDATE関数の使い方(日付・時刻情報を取得する)
php3~ で使用できます。
GETDATE関数 : 書式
getdate ([タイムスタンプ])戻り値:日時情報がセットされた配列
GETDATE関数は日時の各要素を配列に取得します。引数が省略された場合は、現在の時刻が処理対象になります。配列にセットされる日時情報は次の通りです。
キー | 説明 | 戻り値の例 |
---|---|---|
seconds | 秒 | 0 から 59 |
minutes | 分 | 0 から 59 |
hours | 時 | 0 から 23 |
mday | 日 | 1 から 31 |
wday | 曜日(数値) | 0 (日曜) から 6 (土曜) |
mon | 月 | 1 から 12 |
year | 年(4桁) | 例:1999、2020、など |
yday | 1年の通算日 | 0 から 365 |
weekday | 曜日(フルスペルの文字) | Sunday から Saturday |
month | 月(フルスペルの文字) | January から December |
0 | UNIX時(1970年1月1日)からの秒数 | -2147483648 から 2147483647 |
GETDATE関数 : 使用例
- 日時を取得する $today = getdate();
print_r($today);出力結果
Array([seconds] => 46 [minutes] => 53 [hours] => 14 [mday] => 20 [wday] => 6 [mon] => 6 [year] => 2020 [yday] => 171 [weekday] => Saturday [month] => June [0] => 1592632426)
- 指定日の曜日を取得する$yyyy = 2020;
$mm = 6;
$dd = 20;
$array = getdate(mktime(0, 0, 0, $mm, $dd, $yyyy));
echo $array["weekday"]; →「Saturday」を出力<解説>
指定した日が何曜日か調べています。返される日時情報の「weekday」や「wday」に曜日情報が返されます。
関連リンク
PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。