PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP】gmstrftime()関数の使い方とフォーマット指定子をわかりやすく解説

gmstrftime()関数とは

gmstrftime()関数は、ロケール(地域設定)に基づいてGMT/UTC(グリニッジ標準時)の日付・時刻をフォーマットするためのPHP関数です。strftime()関数とよく似ていますが、ローカル時刻ではなくGMTに基づいて処理を行う点が大きな違いです。

なお、この関数はPHP 8.1.0以降で非推奨(deprecated)となっているため、新規開発ではIntlDateFormatterクラスやdate()関数の利用が推奨されます。

構文

gmstrftime(format, timestamp)

パラメータ

  • timestamp − フォーマット対象となる日付・時刻を表すUnixタイムスタンプを指定します。

  • format − 戻り値の形式を指定します。主なフォーマット指定子は以下の通りです。

    • %a − 曜日の省略形(例:Mon)

    • %A − 曜日の完全な名称(例:Monday)

    • %b − 月の省略形(例:Jan)

    • %B − 月の完全な名称(例:January)

    • %c − ロケールで推奨される日付と時刻の表現

    • %C − 世紀の数値(年を100で割った値、範囲は00〜99)

    • %d − 日(01〜31)

    • %D − %m/%d/%yと同じ

    • %e − 日(1〜31、先頭のゼロなし)

    • %g − %Gと同様だが、世紀を含まない2桁の年

    • %G − ISO週番号(%V参照)に対応する4桁の年

    • %h − %bと同じ

    • %H − 24時間制の時(00〜23)

    • %I − 12時間制の時(01〜12)

    • %j − 年間の通算日(001〜366)

    • %m − 月(01〜12)

    • %M − 分

    • %n − 改行文字

    • %p − 指定した時刻に応じた「am」または「pm」

    • %r − 午前・午後表記による時刻

    • %R − 24時間表記による時刻

    • %S − 秒

    • %t − タブ文字

    • %T − 現在時刻(%H:%M:%Sと同等)

    • %u − 曜日の数値表現(1〜7)、月曜=1。注意:Sun Solaris環境では日曜=1となります

    • %U − 現在の年の週番号(最初の日曜日を第1週の初日として数える)

    • %V − 現在の年のISO 8601週番号(01〜53)。第1週は当年に少なくとも4日以上含まれる最初の週で、月曜を週の初日とします

    • %W − 現在の年の週番号(最初の月曜日を第1週の初日として数える)

    • %w − 曜日の10進数表現(日曜=0)

    • %x − 時刻を含まない、ロケールで推奨される日付表現

    • %X − 日付を含まない、ロケールで推奨される時刻表現

    • %y − 世紀を含まない年(範囲は00〜99)

    • %Y − 世紀を含む4桁の年

    • %Z または %z − タイムゾーンの名称または略称

    • %% − リテラルの「%」文字

戻り値

gmstrftime()関数は、指定されたフォーマット文字列に従って整形された文字列を返します。タイムスタンプが省略された場合は、現在のローカル時刻が使用されます。

使用例

以下は基本的な使用例です。

<?php
    setlocale(LC_TIME, 'en_US');
    echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 10, 20, 2017)) . "\n";
    echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 10, 20, 2017)) . "\n";
?>

出力結果

上記コードの実行結果は以下の通りです。

Oct 20 2017 20:00:00
Oct 20 2017 20:00:00

別の使用例

続いて、ロケールを変更した場合の例を見てみましょう。

<?php
    echo(gmstrftime("%B %d %Y, %X %Z",mktime(20,0,0,11,30,91))."<br>");
    setlocale(LC_ALL,"hu_HU.UTF8");
    echo(gmstrftime("%Y. %B %d. %A. %X %Z"));
?>

出力結果

実行結果は以下の通りです。

November 30 1991, 20:00:00 GMT
2018. October 11. Thursday. 05:13:18 GMT
  1. 【PHP入門】filectime()関数の使い方 – ファイルの最終変更時刻を取得する方法

    PHPのfilectime()関数は、ファイルの最終変更時刻を取得するための関数です。取得できる時刻はUNIXタイムスタンプ形式で返され、処理に失敗した場合にはfalseを返します。なお、filectime()が返す「変更時刻」は、ファイルの中身だけでなく、パーミッションや所有者などファイルのメタ情報(inode)が変更された時刻も指します。単純にファイル内容の更新日時を知りたい場合はfilemtime()関数を使うとよいでしょう。構文filectime ( file_path );パラメータfile_path − 最終変更時刻を調べたいファイルへのパスを指定します。戻り値filectime(

  2. PHPのfileatime()関数とは?使い方とサンプルコードをわかりやすく解説

    PHPのfileatime()関数は、指定したファイルに最後にアクセス(読み取りなど)があった日時を取得するための組み込み関数です。取得できる値はUNIXタイムスタンプ形式で返され、ファイルへの最終アクセス時刻をプログラム内で扱えるようになります。ファイルが存在しない場合やアクセス権限がないなど、処理に失敗した場合はfalseを返します。基本構文fileatime ( file_path );パラメータfile_path − 最終アクセス日時を調べたいファイルへのパスを指定します。相対パスでも絶対パスでも指定可能です。戻り値ファイルの最終アクセス時刻をUNIXタイムスタンプ(1970年1月1日