現在の位置: ホーム> 最新記事一覧> localtime()とstrftime()関数を組み合わせて使用​​すると、多様な時間のフォーマットを実現するのは簡単です

localtime()とstrftime()関数を組み合わせて使用​​すると、多様な時間のフォーマットを実現するのは簡単です

gitbox 2025-09-04

PHPでは、処理時間と日付は、特にロギング、データ表示、ファイルネーミングなどのシナリオでは、開発において一般的な要件です。多くの場合、無視できないタスクです。 PHPは、開発者が時間をフォーマットするのを支援する多くの機能を提供します。 localtime()strftime()関数の組み合わせは、多様な時間のフォーマットニーズを簡単に実現できます。

1。localtime()関数の概要

localtime()は、現地時間を取得するために使用される関数です。年、月、日、時間、分、秒、秒などを含む現地時間のさまざまなコンポーネントを含む配列を返します。この関数によって返される時間情報は、現在のタイムスタンプに基づいており、指定されたタイムスタンプに対応する現地時間情報は、パラメーターを指定することで取得できます。

 <span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">localtime</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$time</span></span><span>);
</span></span>

返された配列構造は次のとおりです。

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; 2番
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; 分
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; 時間
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; 曜日は何ですか (</span><span><span class="hljs-number">0</span></span><span>=日曜日, </span><span><span class="hljs-number">1</span></span><span>=月曜日...)
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; 月 (</span><span><span class="hljs-number">0</span></span><span>=</span><span><span class="hljs-number">1</span></span><span>月, </span><span><span class="hljs-number">11</span></span><span>=</span><span><span class="hljs-number">12</span></span><span>月)
    [</span><span><span class="hljs-meta">5</span></span><span>] =&gt; 年 (から</span><span><span class="hljs-number">1900</span></span><span>始まる年)
    [</span><span><span class="hljs-meta">6</span></span><span>] =&gt; 今年の何日 (</span><span><span class="hljs-number">1</span></span><span>到着</span><span><span class="hljs-number">366</span></span><span>)
    [</span><span><span class="hljs-meta">7</span></span><span>] =&gt; 夏時間の兆候 (</span><span><span class="hljs-number">0</span></span><span>=いいえ, </span><span><span class="hljs-number">1</span></span><span>=はい)
)
</span></span>

この配列へのアクセスを通じて、時間、数分、月などのさまざまな部品の時間情報を正確に取得できます。

2。strftime()関数の概要

strftime()関数は、指定された形式の文字列に従って時間をフォーマットするために使用されます。 2つのパラメーターを受け入れます。1つ目はフォーマット文字列、2つ目はオプションのタイムスタンプパラメーターであり、提供されていない場合は現在の時刻にデフォルトになります。

 <span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-string">"%Y-%m-%d %H:%M:%S"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-variable">$format</span></span><span>);
</span></span>

一般的に使用されるフォーマットされた文字は次のとおりです。

  • %y :4桁の年(例:2025)

  • %M :2桁の月(01〜12)

  • %D :2桁の日付(01〜31)

  • %H :2桁の時間(00〜23)

  • %M :2桁分(00〜59)

  • %S :2桁の秒(00〜59)

このようにして、時間を必要な形式に変換できます。

3. localtime()とstrftime()を組み合わせて使用​​します

localtime()strftime()関数を組み合わせて、柔軟で多様な時間フォーマットを実装できます。まず、 LocalTime()を使用して現在の現地時間の配列を取得し、次に配列をタイムスタンプに変換し、 Strftime()を使用して出力をフォーマットします。

 <span><span><span class="hljs-comment">// 現時点で現地時間情報を取得します</span></span><span>
</span><span><span class="hljs-variable">$localTime</span></span><span> = </span><span><span class="hljs-title function_ invoke__">localtime</span></span><span>();

</span><span><span class="hljs-comment">// タイムスタンプを作成します</span></span><span>
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mktime</span></span><span>(
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>],   // 時間
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>],   // 分
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>],   // 2番
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">4</span></span><span>] + </span><span><span class="hljs-number">1</span></span><span>, // 月(追加する必要があります</span><span><span class="hljs-number">1</span></span><span>,因为数组から</span><span><span class="hljs-number">0</span></span><span>始める)
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">3</span></span><span>] + </span><span><span class="hljs-number">1</span></span><span>, // 日付(同理追加する必要があります</span><span><span class="hljs-number">1</span></span><span>)
    </span><span><span class="hljs-variable">$localTime</span></span><span>[</span><span><span class="hljs-number">5</span></span><span>] + </span><span><span class="hljs-number">1900</span></span><span> // 年(追加する必要があります</span><span><span class="hljs-number">1900</span></span><span>)
);

</span><span><span class="hljs-comment">// 使用 strftime フォーマット時間</span></span><span>
</span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-string">"%Y-%m-%d %H:%M:%S"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-variable">$format</span></span><span>, </span><span><span class="hljs-variable">$timestamp</span></span><span>);
</span></span>

上記のコードは、最初にlocaltime()を介して現在の現地時間情報を取得し、次に有効なタイムスタンプを構築し、最後にstrftime()を使用して時間をフォーマットして出力します。

4.一般的なアプリケーションシナリオ

  1. ログファイルタイムスタンプ:

    ロギングシステムでは、各ログにタイムスタンプを追加する必要があることが多く、フォーマット要件は非常に高くなっています。 localtime()およびstrftime()関数を使用すると、複数の時間形式のタイムスタンプは要件に応じて生成できます。

     <span><span><span class="hljs-variable">$logTime</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%Y-%m-%d %H:%M:%S"</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ログ時間: <span class="hljs-subst">$logTime</span></span></span><span>\n";
    </span></span>
  2. カスタム日付形式:

    いくつかのアプリケーションシナリオでは、日付形式を地域またはユーザーのニーズに応じてカスタマイズする必要がある場合があります。 strftime()を使用すると、「2025年7月13日」や「2025-07-13 14:35:20」など、さまざまな日付形式を簡単に実装できます。

     <span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%Y年%m月%d日"</span></span><span>, </span><span><span class="hljs-variable">$timestamp</span></span><span>);  </span><span><span class="hljs-comment">// 出力 "2025年07月13日"</span></span><span>
    </span></span>
  3. ファイル名を動的に生成します。

    ファイルの命名では、ファイル名の一部としてタイムスタンプを使用すると、ファイル名の一意性が保証されます。例: log_2025-07-13_14-35-20.txt

     <span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"ログ_"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%Y-%m-%d_%H-%M-%S"</span></span><span>, </span><span><span class="hljs-variable">$timestamp</span></span><span>) . </span><span><span class="hljs-string">".txt"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ファイル名: <span class="hljs-subst">$filename</span></span></span><span>\n";
    </span></span>

5。概要

LocalTime()STRFTIME()関数を組み合わせることにより、PHP開発者はより柔軟に時間と日付を処理し、特定の形式を満たすタイム文字列を生成できます。ロギング、ファイルの命名、または日付の動的表示など、これら2つの機能の使用を習得すると、開発効率とコード読みやすさが大幅に向上します。