【PHP】日付・時刻(タイムスタンプ)を取得する関数の使い方

アイキャッチ画像PHP日付 PHP
PHP
この記事は約7分で読めます。
Recommended Articles

【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~)

 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 ( [① [,② [,③ [,④ [,⑤ [,⑥ [,⑦]]]]]]]
)

引数:
 ①時 ②分 ③秒 ④月 ⑤日 ⑥年
 ⑦サマータイムの場合は 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関数は日時の各要素を配列に取得します。引数が省略された場合は、現在の時刻が処理対象になります。配列にセットされる日時情報は次の通りです。

キー説明戻り値の例
seconds0 から 59
minutes0 から 59
hours0 から 23
mday1 から 31
wday曜日(数値)0 (日曜) から 6 (土曜)
mon1 から 12
year年(4桁)例:1999、2020、など
yday1年の通算日0 から 365
weekday曜日(フルスペルの文字)Sunday から Saturday
month月(フルスペルの文字)January から December
0UNIX時(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プログラム作成時にご活用下さい。
Recommended Articles