ホームページ >バックエンド開発 >PHPチュートリアル >PHP で Unix タイムスタンプから相対日付/時刻文字列を生成するにはどうすればよいですか?

PHP で Unix タイムスタンプから相対日付/時刻文字列を生成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 21:55:10692ブラウズ

How Can I Generate Relative Date/Time Strings from Unix Timestamps in PHP?

PHP でタイムスタンプから相対日付/時刻を生成する

はじめに

相対日付の決定タイムスタンプに基づく /time は、プログラミングにおける一般的なタスクです。この機能は、さまざまな時間間隔と変換の方向 (過去または将来) を考慮するとより複雑になります。

Answer

以下の関数は、変換に対する包括的なアプローチを提供します。過去と未来の両方を考慮した、相対的な日付/時刻形式への Unix タイムスタンプ (time() 関数を使用して取得)。次のような出力が生成されます:


  • 2 週間前
  • 1 時間 60 分前
  • 15分54秒ago

  • 10 分 15 秒後

この関数は、一連の条件ステートメントを使用して適切な時間表現を決定します現在時刻との差に基づいて、タイムスタンプ:

<br>function time2str($ts)<br>{</p>
<pre class="brush:php;toolbar:false">// Handle syntax variations
if(!ctype_digit($ts)) $ts = strtotime($ts);

// Calculate the difference between now and the timestamp
$diff = time() - $ts;

// Check for exact matches to simplify handling
if($diff == 0) return 'now';

// Handle past timestamps
if($diff > 0)
{
    // Calculate day difference
    $day_diff = floor($diff / 86400);

    // Format past time intervals
    switch(true)
    {
        case ($day_diff == 0):    return constructPastInterval($diff); // Hours, minutes, seconds
        case ($day_diff == 1):    return 'Yesterday';
        case ($day_diff < 7):    return $day_diff . ' days ago';
        case ($day_diff < 31):   return ceil($day_diff / 7) . ' weeks ago';
        case ($day_diff < 60):   return 'last month';
        default:               return date('F Y', $ts);
    }
}
// Handle future timestamps
else
{
    // Calculate absolute difference
    $diff = abs($diff);
    
    // Calculate day difference and format future time intervals based on logic similar to the past case.
}

}

この応答にはconstructPastInterval()関数は示されていませんが、過去の間隔の書式設定を処理します。 (時、分、秒)。

この関数は、タイムスタンプから相対的な日付/時刻表現を生成するための堅牢で多用途のソリューションを提供し、複数のスクリプトや複雑なカスタム コーディングの必要性を排除します。

以上がPHP で Unix タイムスタンプから相対日付/時刻文字列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。