strftime

関数の概要

strftimeは、PHPでローカルの日時を指定した書式に従って文字列として整形する関数です。C言語の strftime を元にしており、日付や時刻をユーザーのロケールに合わせて表現したい場合に便利です。

パラメータの説明

  • format(文字列): 書式指定文字列。日付・時刻の各要素をどのように文字列化するかを指定します。例えば、週の名前や月の名前、日付の数字などを指定可能です。
  • timestamp(整数、オプション): UNIXタイムスタンプ。省略した場合は現在のローカル日時が使われます。

戻り値

指定した書式に従って変換された日時の文字列を返します。もし format の指定が不正の場合は、空文字列が返ることがあります。

使用例を複数

基本的な使い方

$dateString = strftime('%Y-%m-%d %H:%M:%S');
echo $dateString;

現在のローカル日時を「年-月-日 時:分:秒」の形式で表示します。

曜日と月名を含めた表示

setlocale(LC_TIME, 'ja_JP.UTF-8');
echo strftime('%Y年 %B %d日 (%A)');

日本語ロケールを設定し、例えば「2024年 6月 12日 (水曜日)」のように曜日や月名を日本語で表示します。

指定したタイムスタンプの日時を表示

$timestamp = mktime(15, 30, 0, 7, 10, 2024);
echo strftime('%Y/%m/%d %H:%M', $timestamp);

2024年7月10日15時30分の日時を「2024/07/10 15:30」の形式で表示します。

関連する関数

  • date() – UNIXタイムスタンプを指定して日付文字列を作成する標準関数。
  • gmstrftime() – UTC(グリニッジ標準時)を基準に strftime と同じフォーマットで日時を整形。
  • setlocale()strftime の結果表示に影響するロケールを設定する関数。
  • time() – 現在のUNIXタイムスタンプを取得する関数。

まとめ

strftimeはローカル日時をユーザーの言語や文化圏に合わせて見やすく表示したい場合に有効な関数です。setlocale()でロケールを設定すれば曜日や月名を日本語や他の言語に切り替えられます。date()に比べてロケール対応が特徴ですが、PHPの環境によってサポート状況や挙動が異なるため、使用前に環境を確認することをおすすめします。