関数の概要
gmstrftime は、PHPで日付や時刻をGMT(グリニッジ標準時)基準でフォーマットして文字列として返す関数です。通常の strftime 関数がローカルタイムを基準に日時を処理するのに対し、gmstrftime は常にGMT/UTCの時間を元に処理を行います。そのため、タイムゾーンに依存しない日時文字列の生成に適しています。
パラメータの説明
- format(文字列):日時をフォーマットするための書式文字列を指定します。
strftimeと同様に、%Yは西暦4桁、%mは月(01〜12)、%dは日(01〜31)など、様々なフォーマット指定子が使えます。 - timestamp(整数、省略可能):対象のUnixタイムスタンプを指定します。指定がない場合は現在の時刻が使用されます。
戻り値
指定したフォーマットに従って変換された、GMT基準の日時文字列を返します。もし指定された書式が正しくない場合、空文字列を返すことがあります。
使用例
基本的な使い方
<?php
echo gmstrftime("%Y-%m-%d %H:%M:%S");
?>
現在のGMT時刻を「YYYY-MM-DD HH:MM:SS」形式の文字列で表示します。
特定のタイムスタンプを変換する例
<?php
$timestamp = 1672531199; // 2023年1月1日 00:59:59 GMT
echo gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $timestamp);
?>
指定したUnixタイムスタンプをGMT時刻でフォーマットし、例えば「Sun, 01 Jan 2023 00:59:59 GMT」のように表示します。
曜日やタイムゾーン表示を含むフォーマット
<?php
echo gmstrftime("Today is %A, the %dth of %B, %Y (GMT)");
?>
現在のGMT時刻の曜日名や月名を含む文章形式で日時を表現します。
関連する関数
strftime:ローカルタイムを基準に日時を文字列化する関数。gmdate:GMT基準の日時をフォーマットする関数。date:ローカルタイムをフォーマットする関数。
まとめ
gmstrftime はGMT(UTC)基準の日時を柔軟に文字列化できる便利な関数です。タイムゾーンの影響を受けずに日時を扱いたい場合に特に役立ちます。PHPの strftime と同様の書式指定が使えるため、慣れている方には使いやすく、サーバ側で統一された時刻表現を扱う際におすすめです。ただし、利用する際にはPHPのロケール設定によって曜日名や月名の出力が変わる点には注意しましょう。
