Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert Timeline-Funktion (personalisierte Zeit)

PHP implementiert Timeline-Funktion (personalisierte Zeit)

巴扎黑
巴扎黑Original
2016-11-11 15:04:161763Durchsuche

Wenn wir im Forum posten oder kommentieren oder den QQ-Bereich zum Veröffentlichen von Protokollen oder Weibo-Kommentaren verwenden, wird die Zeit nach dem veröffentlichten Inhalt als „gerade jetzt“, „vor 5 Minuten“, „gestern 10:00 Uhr“ angezeigt. 23" usw., anstatt direkt das spezifische Datum und die Uhrzeit anzuzeigen.
In diesem Artikel wird erläutert, wie Sie die Zeitkonvertierung basierend auf der Zeitleiste implementieren.
Zuerst müssen wir mehrere Funktionen der Zeit verstehen:
time(): Gibt den aktuellen Unix-Zeitstempel zurück
date(): Formatiert eine lokale Zeit/ein lokales Datum.
Anwendungsbeispiel:
date("Y-m-d H:i:s",time());
Formatieren Sie die aktuelle Uhrzeit, Ausgabe: 2010-10-11 05:27:35
strtotime( ): Analysiert jede Datums-/Uhrzeitbeschreibung in englischem Text in einen Unix-Zeitstempel.
Anwendungsbeispiel:
echo strtotime(" 1 Tag"), "n";
Zeitstempel vor 1 Tag ausgeben: 1286861475
date_default_timezone_set(): Legen Sie die zu verwendende Standardzeitzone fest.
Im Allgemeinen stellen wir die Pekinger Zeit ein: date_default_timezone_set("PRC");
Nachdem wir die oben genannten Funktionen verstanden haben, können wir die Zeitleistenfunktion schreiben:
Das Prinzip dieser Funktion besteht darin, die aktuelle Systemzeit mit der Zielzeit zu vergleichen Zeit und erhalten Sie einen Differenzwert, vergleichen Sie dann den Differenzwert mit dem Zeitbereich (umgerechnet in Sekunden) und geben Sie je nach Bereich der Zeitachse unterschiedliche Ergebnisse aus (z. B. vor 5 Minuten). Zur Vereinfachung der Berechnung rechnen wir die Zeiten in Unix-Zeitstempel um.
function tranTime($time) {
$rtime = date("m-d H:i",$time);
$time = time() - $time;

if ($time $str = 'just'; }
elseif ($time $min = floor($time/60);
$str = $min.'minutes ago';
elseif ($time $h = floor($time/(60*60));
$str = $h.'hours'.$htime
}
elseif ($time $d = floor($time/(60*60*24));
if($d==1)
$str = 'yesterday'.$rtime ; Else
$ Str = 'Vorgestern' }
Else {
$ Str = $ rtime;
}
Der Parameter $time in der Funktion tranTime() muss ein Unix-Zeitstempel sein. Wenn nicht, verwenden Sie bitte zuerst strtotime(), um ihn in einen Unix-Zeitstempel zu konvertieren. Der obige Code ist auf einen Blick leicht zu verstehen, sodass keine weiteren Ausführungen erforderlich sind.
Funktion aufrufen und direkt ausgeben:
$times="1286861696 "
echo tranTime($times);

Stellungnahme:
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