gmstrftime

ロケールの設定に基づいて GMT/UTC 時刻/日付をフォーマットする

警告

この関数は PHP 8.1.0 で 非推奨 になります。この関数に頼らないことを強く推奨します。

この関数の代替として、これらが使えます:

  • gmdate
  • IntlDateFormatter::format

説明

stringfalse gmstrftime(string $format, intnull $timestamp = null)

グリニッジ標準時を返すこと以外は、 strftime と同じ動作をします。例えば、東部標準時 (GMT -0500) で実行した場合、以下の最初の行は "Dec 31 1998 20:00:00" を出力し、二行目は "Jan 01 1999 01:00:00" を出力します。

警告

この関数は、オペレーティングシステムのロケールの情報に依存しており、 情報が一貫していなかったり、全く利用できない可能性があります。 代わりに、 IntlDateFormatter::format を使いましょう。

パラメータ

format

strftime の説明を参照ください。

timestamp

オプションのパラメータ timestamp は、 int 型の Unix タイムスタンプです。 timestamp が指定されなかったり、null だった場合のデフォルト値は、 現在の時刻です。言い換えると、デフォルトは time の返り値となります。

戻り値

指定した timestamp または timestamp が指定されていない場合に現在のローカル時間を用いて、 指定したフォーマット文字列に基づき文字列をフォーマットして返します。 月および曜日の名前、およびその他の言語依存の文字列は、 setlocale で設定された現在のロケールを尊重して表示されます。 失敗時には、false を返します。

変更履歴

バージョン 説明
8.0.0 timestamp は、nullable になりました。

例1 gmstrftime の例

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

参考

  • IntlDateFormatter::format
  • DateTimeInterface::format
  • strftime