ホームページ > バックエンド開発 > PHPチュートリアル > PHP でタイムスタンプを「以前」の文字列に変換するにはどうすればよいですか?

PHP でタイムスタンプを「以前」の文字列に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-31 07:58:22
オリジナル
269 人が閲覧しました

How Can I Convert Timestamps to

PHP でタイムスタンプを時刻以前の文字列に変換する

タイムスタンプを相対時間文字列に変換すると、情報をより使いやすい形式で表示するのに役立ちます。 PHP では、これを実現するために使用できる関数とアプローチがいくつかあります。

一般的なアプローチの 1 つは、strtotime() 関数を使用して、タイムスタンプの文字列表現を Unix タイムスタンプ形式 (秒数) に変換することです。 Unix エポック、1970 年 1 月 1 日 00:00:00 UTC 以降)。その後、gmdate() や date() などの関数を使用して Unix タイムスタンプをフォーマットできます。これは、タイムスタンプが特殊なフォーマットの場合に有益です。

あるいは、DateTime() クラスを使用して変換することもできます。タイムスタンプまたは日付文字列を PHP DateTime オブジェクトに挿入します。 DateTime クラスは、日付と時刻を操作および書式設定するためのさまざまなメソッドを提供します。タイムスタンプを表す DateTime オブジェクトと現在時刻を比較することで、経過時間を計算し、相対時間文字列を構築できます。

これは、DateTime クラスを使用してタイムスタンプを以前の文字列に変換する関数の例です。 :

function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);

    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    $string = array(
        'y' => 'year',
        'm' => 'month',
        'w' => 'week',
        'd' => 'day',
        'h' => 'hour',
        'i' => 'minute',
        's' => 'second',
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }

    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' ago' : 'just now';
}
ログイン後にコピー

この関数は、タイムスタンプまたは日付文字列を引数として受け取り、相対時間文字列を返します。 $full 引数を true に設定すると、関連するすべての時間単位を含むより詳細な文字列を取得できます。それ以外の場合は、関連する最大の時間単位のみが含まれます。

使用例:

echo time_elapsed_string('2013-05-01 00:22:35');
echo time_elapsed_string('@1367367755'); # timestamp input
echo time_elapsed_string('2013-05-01 00:22:35', true);
ログイン後にコピー

出力:

4 months ago
4 months ago
4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago
ログイン後にコピー

この関数は、シンプルでカスタマイズ可能な方法を提供します。 PHP でタイムスタンプを相対時間文字列に変換します。これを使用すると、時間に敏感な情報をユーザーに対して明確かつ簡潔な方法で表示できます。

以上がPHP でタイムスタンプを「以前」の文字列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート