Wie konvertiert man Zeitstempel in PHP in relatives Datum/Uhrzeit?

Patricia Arquette
Freigeben: 2024-11-28 00:00:16
Original
308 Leute haben es durchsucht

How to Convert Timestamps to Relative Date/Time in PHP?

PHP: Konvertieren von Zeitstempeln in relatives Datum/Uhrzeit

Relative Zeitstempel geben die Zeit an, die zwischen einem bestimmten Zeitpunkt und dem aktuellen Zeitpunkt verstrichen ist. Sie bieten eine benutzerfreundlichere Darstellung der Zeit als absolute Zeitstempel, insbesondere für Ereignisse, die in der Vergangenheit aufgetreten sind oder in der Zukunft auftreten werden.

Um relative Zeitstempel in PHP zu generieren, sollten Sie die Verwendung der folgenden Funktion in Betracht ziehen:

function time2str($ts)
{
    if (!ctype_digit($ts)) {
        $ts = strtotime($ts);
    }

    $diff = time() - $ts;
    if ($diff == 0) {
        return 'now';
    } elseif ($diff > 0) {
        // Past timestamps
        $day_diff = floor($diff / 86400);
        if ($day_diff == 0) {
            if ($diff < 60) {
                return 'just now';
            } elseif ($diff < 120) {
                return '1 minute ago';
            } elseif ($diff < 3600) {
                return floor($diff / 60) . ' minutes ago';
            } elseif ($diff < 7200) {
                return '1 hour ago';
            } elseif ($diff < 86400) {
                return floor($diff / 3600) . ' hours ago';
            }
        } elseif ($day_diff == 1) {
            return 'Yesterday';
        } elseif ($day_diff < 7) {
            return $day_diff . ' days ago';
        } elseif ($day_diff < 31) {
            return ceil($day_diff / 7) . ' weeks ago';
        } elseif ($day_diff < 60) {
            return 'last month';
        } else {
            return date('F Y', $ts);
        }
    } else {
        // Future timestamps
        $diff = abs($diff);
        $day_diff = floor($diff / 86400);
        if ($day_diff == 0) {
            if ($diff < 120) {
                return 'in a minute';
            } elseif ($diff < 3600) {
                return 'in ' . floor($diff / 60) . ' minutes';
            } elseif ($diff < 7200) {
                return 'in an hour';
            } elseif ($diff < 86400) {
                return 'in ' . floor($diff / 3600) . ' hours';
            }
        } elseif ($day_diff == 1) {
            return 'Tomorrow';
        } elseif ($day_diff < 4) {
            return date('l', $ts);
        } elseif ($day_diff < 7 + (7 - date('w'))) {
            return 'next week';
        } elseif (ceil($day_diff / 7) < 4) {
            return 'in ' . ceil($day_diff / 7) . ' weeks';
        } elseif (date('n', $ts) == date('n') + 1) {
            return 'next month';
        } else {
            return date('F Y', $ts);
        }
    }
}
Nach dem Login kopieren

Diese Funktion akzeptiert einen Zeitstempel und gibt einen relativen Zeitstempel aus. Es verarbeitet sowohl vergangene als auch zukünftige Zeitstempel und liefert Ausgaben in verschiedenen Formaten, z. B. „vor 1 Stunde“ oder „in 2 Tagen“.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Zeitstempel in PHP in relatives Datum/Uhrzeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage