Erzeugen eines relativen Datums/einer relativen Uhrzeit aus Zeitstempeln in PHP
Einführung
Bestimmen des relativen Datums /time basierend auf einem Zeitstempel ist eine häufige Aufgabe in der Programmierung. Diese Funktionalität wird komplexer, wenn unterschiedliche Zeitintervalle und die Richtung der Konvertierung (Vergangenheit oder Zukunft) berücksichtigt werden.
Antwort
Die folgende Funktion bietet einen umfassenden Ansatz zur Konvertierung Unix-Zeitstempel (erhalten mit der Funktion time()) in relative Datums-/Uhrzeitformate, die sowohl Vergangenheit als auch Zukunft berücksichtigen. Es generiert Ausgaben wie:
Die Funktion verwendet eine Reihe von bedingten Anweisungen, um die geeignete Zeitdarstellung zu bestimmen basierend auf der Differenz zwischen der aktuellen Zeit und der Zeitstempel:
<br>function time2str($ts)<br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><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. }
}
Die Die Funktion constructionPastInterval() wird in dieser Antwort nicht angezeigt, übernimmt aber die Formatierung vergangener Intervalle (Stunden, Minuten, Sekunden).
Diese Funktion bietet eine robuste und vielseitige Lösung zum Generieren relativer Datums-/Uhrzeitdarstellungen aus Zeitstempeln, wodurch die Notwendigkeit mehrerer Skripte oder komplexer benutzerdefinierter Codierung entfällt.
Das obige ist der detaillierte Inhalt vonWie kann ich relative Datums-/Uhrzeitzeichenfolgen aus Unix-Zeitstempeln in PHP generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!