PHPでは、 GMDATE()関数を使用して、グリニッジ標準時間(GMT)に基づいて日付と時刻の文字列をフォーマットします。日付()関数とは異なり、 gmdate()はサーバーの現地時間ではなくGMT時間を返します。タイムゾーンで日付の要件を処理するのに最適です。
GMDate()で日付をフォーマットする場合、時間、数分、数ヶ月、日付、日付などの「ゼロ補償」の問題に遭遇することがよくあります。数値が10未満の場合、ゼロを埋める必要がありますか?実際、 GMDATE()は、これを自動的に処理するためのフォーマット文字を提供します。
d - 補償がゼロの月の日は01から31の範囲
j - 補償がゼロのない日付、範囲は1〜31です
m - 補償がゼロで月を表し、 01から12の範囲
n - ゼロ補償なしの月、 1〜12の範囲
H - 補償がゼロの24時間システム、範囲は00〜23です
G - 24時間のシステム、補償がゼロなしで、範囲は0〜23です
I - 補償がゼロで、範囲は00〜59です
s -秒、補償がゼロで、範囲は00〜59です
したがって、ゼロを自動的に埋める限り、 d 、 m 、 h 、 i 、 sなどのゼロを塗りつぶしてフォーマット文字を使用します。ゼロを構成したくない場合は、ゼロ補数なしで対応する文字を使用します。
<?php
// 現在のタイムスタンプ
$timestamp = time();
// ゼロ修飾形式の日付と時刻
echo gmdate('Y-m-d H:i:s', $timestamp);
// 出力の例: 2025-05-24 14:05:09
// 補充がゼロのない日時
echo gmdate('Y-n-j G:i:s', $timestamp);
// 出力の例: 2025-5-24 14:5:9
?>
上記のコードは、 gmdate()がフォーマット文字自体に基づいてゼロを埋めるかどうかを自動的に決定し、追加の処理は必要ないことを示しています。
一部の初心者は、条件付きステートメントを使用して数字のサイズを決定し、次のようなゼロを補おうとする場合があります。
<?php
$hour = gmdate('G');
if ($hour < 10) {
$hour = '0' . $hour;
}
echo $hour;
?>
このタイプの文章は面倒でエラーが発生しやすいです。フォーマット文字hを使用するとゼロを自動的に補うことができるため、それは完全に不要です。
GMDATE()を使用して日付をフォーマットする場合、手動操作なしでゼロをフォーマット文字で自動的に入力できます。
たとえば、 d 、 m 、 h 、 i 、 sは自動的にゼロを構成します。
ゼロ修飾なしのJ 、 N 、 G、およびその他のフォーマット文字を使用します。
よりフォーマットされた文字とgmdate()の使用については、公式ドキュメントを参照できます。