現在の位置: ホーム> 最新記事一覧> GetTimeOfdayおよびDate関数を通じてカスタム形式の時間を取得するにはどうすればよいですか?

GetTimeOfdayおよびDate関数を通じてカスタム形式の時間を取得するにはどうすればよいですか?

gitbox 2025-05-28

PHPでは、時間を取得することは開発において非常に一般的な要件です。 getTimeOfDay()およびdate()関数は、時間を処理するために使用される一般的な関数ですが、目的と戻りの結果は異なります。この記事では、getTimeOfDay()date()を組み合わせて、カスタム形式でタイム文字列を取得する方法について説明します。


1。GetTimeOfday()関数の紹介

GetTimeOfDay()関数は、秒数とマイクロ秒を含む、現在の時間の詳細情報を返します。その返品値は連想配列であり、一般的なフィールドは次のとおりです。

  • SEC :UNIX ERA以来の秒数(1970-01-01 00:00:00 UTC)

  • USEC :現在の秒のマイクロ秒数

例:

 <?php
$time = gettimeofday();
print_r($time);
?>

出力は似ています:

 Array
(
    [sec] => 1621766783
    [usec] => 123456
    [minuteswest] => 480
    [dsttime] => 0
)

2。日付()関数の紹介

日付()は、PHPで時間をフォーマットするための主な関数です。 2つのパラメーターを受け取ります。

  • フォーマット文字列( YMD H:I:Sなど)

  • オプションのタイムスタンプ(秒)

例:

 <?php
echo date('Y-m-d H:i:s'); // 現在の出力時刻,例えば 2021-05-23 15:19:43
?>

3。getTimeOfdayと日付を組み合わせてカスタム形式の時間を実装します(マイクロ秒)

date()は秒のみを処理でき、マイクロ秒を表示できません。 GetTimeOfday()からマイクロ秒を取得し、その後、 date()でフォーマットされた秒数と組み合わせて、マイクロ秒の時間文字列を取得できます。

サンプルコード:

 <?php
$time = gettimeofday();
$seconds = $time['sec'];
$microseconds = $time['usec'];

// 2番目の部分をフォーマットします
$formatted_time = date('Y-m-d H:i:s', $seconds);

// スプライシングマイクロ秒パーツ,ASのフォーマット6少し,不十分な補償0
$micro_str = str_pad($microseconds, 6, '0', STR_PAD_LEFT);

// 最後の時間文字列,次のような形式:2021-05-23 15:19:43.123456
echo $formatted_time . '.' . $micro_str;
?>

4.機能カプセル化を使用して、簡単に再利用します

プロジェクトでの複数の使用を容易にするために、上記のコードを関数にカプセル化できます。

 <?php
function getFormattedMicrotime($format = 'Y-m-d H:i:s') {
    $time = gettimeofday();
    $seconds = $time['sec'];
    $microseconds = $time['usec'];
    $formatted_time = date($format, $seconds);
    $micro_str = str_pad($microseconds, 6, '0', STR_PAD_LEFT);
    return $formatted_time . '.' . $micro_str;
}

// 使用の例
echo getFormattedMicrotime(); // デフォルト形式
echo "\n";
echo getFormattedMicrotime('Y/m/d H:i:s'); // カスタム形式
?>

5。結論

この例を介して、PHPのgetTimeOfday()date()を簡単に組み合わせて、マイクロ秒でカスタム形式の時間出力を実現できます。これは、特にログ、パフォーマンスの監視、その他のシナリオに適した、より洗練された時間のニーズを満たすことができます。

PHP時間関数の使用の詳細については、 gitbox.net/ php-date-functionを参照できます。