Heim > Backend-Entwicklung > PHP-Tutorial > Wie konvertiert man Zeitstempel in PHP in für Menschen lesbare relative Daten und Zeiten?

Wie konvertiert man Zeitstempel in PHP in für Menschen lesbare relative Daten und Zeiten?

Mary-Kate Olsen
Freigeben: 2024-12-13 11:06:20
Original
695 Leute haben es durchsucht

How to Convert Timestamps to Human-Readable Relative Dates and Times in PHP?

Konvertieren von Zeitstempeln in relative Datums-/Uhrzeitwerte

In PHP können Sie Zeitstempel ganz einfach in benutzerfreundliche relative Datums-/Uhrzeitzeichenfolgen konvertieren, die sowohl für vergangene als auch für zukünftige Zeitstempel funktionieren . Durch die Anpassung von Zeitstempeln an dieses Format können Sie das Benutzererlebnis verbessern, indem Sie intuitive Zeitdarstellungen bereitstellen.

Um diese Konvertierung durchzuführen, können Sie die folgende Funktion verwenden:

function time2str($ts)
{
    // Handle non-numeric timestamps
    if (!ctype_digit($ts)) {
        $ts = strtotime($ts);
    }

    $diff = time() - $ts;

    // Handle current time
    if ($diff == 0) {
        return 'now';
    }

    // Handle past timestamps
    if ($diff > 0) {
        $day_diff = floor($diff / 86400);
        if ($day_diff == 0) {
            // Handle minutes and hours ago
            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);
        }
    }

    // Handle future timestamps
    else {
        $diff = abs($diff);
        $day_diff = floor($diff / 86400);
        if ($day_diff == 0) {
            // Handle minutes and hours from now
            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

Mit dieser Funktion können Sie ganz einfach benutzerfreundliche relative Datums-/Uhrzeitzeichenfolgen aus Zeitstempeln generieren.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Zeitstempel in PHP in für Menschen lesbare relative Daten und Zeiten?. 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