Konvertierung timestamp zu Zeit in PHP e.g 1 Tag, 2 Tage her...
Ich versuche zu konvertieren timestamp-format 2009-09-12 20:57:19
und verwandelt es in etwas wie 3 minutes ago
mit PHP.
Fand ich ein nützliches script, um dies zu tun, aber ich denke, es ist die Suche nach einem anderen format verwendet werden, da die Zeit-variable. Das script-ich bin zu wollen, ändern Sie für die Arbeit mit diesem format ist:
function _ago($tm,$rcs = 0) {
$cur_tm = time();
$dif = $cur_tm-$tm;
$pds = array('second','minute','hour','day','week','month','year','decade');
$lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
$no = floor($no);
if($no <> 1)
$pds[$v] .='s';
$x = sprintf("%d %s ",$no,$pds[$v]);
if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0))
$x .= time_ago($_tm);
return $x;
}
Ich denke in den ersten paar Zeilen das script wird versuchen, etwas zu tun, die wie folgt aussieht (anderes Datum-format Mathematik):
$dif = 1252809479 - 2009-09-12 20:57:19;
Wie würde ich mich über meine Umwandlung timestamp in das (unix?) format?
möglich, Duplikat der so berechnen Sie die Differenz zwischen zwei Datumsangaben mit PHP haben?
PHP & jQuery Beispiel hier freakyjolly.com/convert-date-time-to-facebook-style
PHP & jQuery Beispiel hier freakyjolly.com/convert-date-time-to-facebook-style
InformationsquelleAutor willdanceforfun | 2009-09-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beispiel :
Eingang können Sie alle unterstützt werden Datums-und Zeit-format.
Ausgabe :
Funktion :
$full
sollte ein string-input, filtern Sie die Ausgabe nach Bedarf). z.B.time_elapsed_string($datetime, $format = "ymw")
. P. S. Flachbild version: stackoverflow.com/a/5010169/318765Bezüglich meines letzten Kommentars: Ändern
$full = false
zu$level = 7
undif (!$full) $string = array_slice($string, 0, 1);
zu$string = array_slice($string, 0, $level);
- und call -time_elapsed_string($datetime, 2)
erhalten nur die beiden höchsten Datums-Zeichenketten. Ich denke, das sollte alles passen muss.ofc-diese Funktion funktioniert nicht bei jedem-Fall-Benutzer-will-Szenario; aber es ist ein schöner Startpunkt, wo Sie können, mit minimalen fix, bekommen, was Sie brauchen, wie Sie bereits bewiesen...
Ich bin immer
Unknown property (w)
bei dieser Linie$diff->w = floor($diff->d / 7);
Um dieses Problem zu beheben
Unknown property (w)
Problem in PHP5.3 und unten konvertieren $diff aus einem Objekt in ein array und anpassen der rest des Codes entsprechend. Ich habe den fix hier gepostet: stackoverflow.com/a/32723846/235633InformationsquelleAutor Glavić
30days for month
, und12x30days for year
, und von daher wird es ungültige Anzahl von Jahren Balg Jahr <= 1978. Beispiel wo gibt es 39 Jahren, aber es sollte 38. Und es ist auch nicht die Arbeit für Jahre FALTENBALG 1970.Schreckliche Lösung. Warum hat das 42 upvotes und ausgewählte Antwort? Seit Wann gibt es jeden Monat haben 30 Tage?
könnten Sie mir bitte sagen, warum Sie wollen, nach unten abstimmen, meine Antwort. wenn meine Antwort ist nicht gut genug, Sie können einen Kommentar schreiben, es zu korrigieren, ohne nach unten abstimmen.
Deine Antwort ist nicht gut, weil es zählt von 30 Tagen pro Monat und nicht alle Monate haben 30 Tage. Lesen Sie die anderen Kommentare oben.
Dies ist eine Funktion zur Rückgabe eines Allgemeinen Satz, wie "in etwa, wie lange es her war dieser Kommentar"? Es ist nicht präzise und hat einige Nachteile, wie oben erwähnt, aber für Termine, die in Naher Vergangenheit (sagen wir 30 Jahre in der Nähe von Vergangenheit und weniger) ist es uns nicht präzise den Menschen eine Vorstellung davon, wie lange vor einem Ereignis ist aufgetreten. Funktionierte gut für meine Anwendung.
InformationsquelleAutor Ayman Hussein
Ich glaube nicht, es wird wirken sich in einer merklichen Weise. stackoverflow.com/questions/7895966/..., Aber ich merke, dass, wie die Zeit verstreicht, und die Veranstaltung ist schon jetzt sagen, wie "vor Monaten" , wird es zu prüfen haben eine Menge von ifs (Sekunden, Minuten, Stunden, Tage, Wochen). So schlage ich vor, Sie können wickeln Sie diese, wenn Abschnitte mit einer anderen äußeren, wenn das sagt, dass wenn($Sekunden <= 604800 ). So ist ein Fall mit Monaten wird nicht haben zu prüfen, 4 weitere ifs...wieder, die Fälle weniger als Monaten über eine zusätzliche wenn....Sie haben die Wahl.
InformationsquelleAutor Captain Red
Dies ist eigentlich eine bessere Lösung, die ich gefunden habe. JQuery verwendet, aber es funktioniert perfekt. Auch ist es automatisch aktualisiert, ähnlich der Art, SO und Facebook tut, so dass Sie nicht haben, um die Seite aktualisieren, um die updates zu sehen.
Dieses plugin liest Ihr
datetime
attr in der<time>
tag und füllen Sie es in für Sie.http://timeago.yarp.com/
Perfekt arbeiten und zeigen das gewünschte Ergebnis TRITT in der Zeit
InformationsquelleAutor Panama Jack
Ich weiß nicht, warum niemand erwähnt Carbon noch.
https://github.com/briannesbitt/Carbon
Dies ist eigentlich eine Erweiterung von php dateTime (das wurde bereits hier) und es hat: diffForHumans Methode. So alle Sie tun müssen, ist:
weitere Beispiele: http://carbon.nesbot.com/docs/#api-humandiff
Vorteile dieser Lösung:
InformationsquelleAutor Krzysztof Duszczyk
InformationsquelleAutor brycejl
Fand ich Ergebnisse wie die folgenden ugly:
Weil ich realisiert eine Funktion, die Respekt Plural, entfernt leere Werte und Optional ist es möglich, zu verkürzen, Ausgabe:
Sieht viel besser aus:
Optional
$level = 2
zu verkürzen, können Sie es wie folgt:Entfernen Sie die
$lang
Teil, wenn Sie brauchen es nur in Englisch oder Bearbeiten dieser übersetzung auf Ihre Bedürfnisse angepasst werden:InformationsquelleAutor mgutt
Ich veränderte die ursprüngliche Funktion ein wenig zu (meiner Meinung nach eher sinnvoll oder logisch).
Wenn die meisten Menschen nutzen diese Arten von Funktionen, die Präzision, die zweite ist nicht notwendig. Die Funktion ist genau über kurze Zeiträume und über lange Zeiträume, die Nähe ist mehr als gut genug.
InformationsquelleAutor Bobb Fwed
Nur werfen eine weitere option...
Während ich bevorzuge die Methode DateTime posting hier, ich wusste nicht, wie die Tatsache, dass es angezeigt 0 Jahre etc.
InformationsquelleAutor TMH
habe ich dieses und es funktioniert ganz gut es funktioniert für beide unix-timestamp wie
1470919932
oder formatierte Zeit wie16-08-11 14:53:30
switch (true)
obwohl$time
bewerten zutrue
?InformationsquelleAutor Ahmad ghoneim
es Ihnen helfen, check it
InformationsquelleAutor Abbbas khan
Ich bin mir bewusst, dass es mehrere Antworten hier, aber das ist, was ich kam mit. Dieser behandelt nur MySQL DATETIME-Werte als gemäß der ursprünglichen Frage, auf die ich reagiert wurde. Das array "$a " braucht etwas Arbeit. Ich begrüße Kommentare, wie Sie zu verbessern. Aufruf:
echo time_elapsed_string('2014-11-14 09:42:28');
InformationsquelleAutor rdpcoder
Ich versucht, und funktioniert gut für mich
Überprüfen Sie diesen link für Referenz hier
Dank! und Spaß zu haben.
InformationsquelleAutor Ruberandinda Patience
Dies ist, was ging ich mit. Seine modifizierte version von Abbbas khan ' s post:
InformationsquelleAutor drtechno
Viele Lösungen, die hier nicht angemeldet für die Rundung. Zum Beispiel:
Ereignis geschah an 3pm vor zwei Tagen. Wenn Sie überprüfen gegen 2 Uhr, es wird sich zeigen, eines Tages gemeldet. Wenn Sie überprüfen, um 4 Uhr wird es zeigen, vor zwei Tagen.
Wenn Sie arbeiten mit der unix-Zeit, das hilft:
Ist es nicht ideal, wenn Sie sind besorgt über Schaltsekunden und Sommerzeit.
InformationsquelleAutor Frank Forte
Müssen Sie jedes einzelne Stück Ihrer Zeitstempel und konvertieren Sie es in Unix-Zeit. Zum Beispiel für den Zeitstempel, 2009-09-12 20:57:19.
(((2008-1970)*365)+(8*30)+12)*24+20 würden Sie eine Ungefähre Schätzung der Stunden, die seit dem 1. Januar 1970.
Nehmen Sie diese Zahl, multipliziert mit 60 und add 57, um die Minuten.
Nehmen, die, multipliziert mit 60 und add 19.
Dass umwandeln würde es sehr grob und ungenau jedoch.
Gibt es einen Grund, Sie können nicht einfach die normale Unix-Zeit, um mit zu beginnen?
Auf jeden Fall. Ich glaube, die standardmäßig für eine mySQL-Tabelle ist der Typ, den Sie verwiesen, aber die Unix-Zeit ist viel praktischer. Sie können immer speichern Sie es als ein int.
Ihre Datenbank sollte eine Funktion zum konvertieren das Datum in das UNIX-format. In mysql verwenden Sie UNIX_TIMESTAMP(). Oh, und Sie sollten in der Regel speichern Sie Ihre Daten als DATETIMEs anstatt von INTs, so dass Sie können verwenden Sie die sql-Funktionen für die manipulation von Datum.
Sie sollten nie, nie benutzen Mathematik auf Zeit. Sie gehen davon aus, eine Festnetz-Kalender, die nicht existiert. Verwenden Sie die Date-Objekt in php für die Arbeit mit... Termine.
InformationsquelleAutor LukeWarm74
Gibt es einige Problem mit einigen Sprache Anzeige Zeit zum Beispiel im arabischen gibt es 3 Formate benötigt, um das Datum anzuzeigen.
Ich benutze diese Funktionen in meinem Vorhaben, hoffentlich kann jemand helfen (jede Anregung oder Verbesserung werde ich apperciate 🙂 )
InformationsquelleAutor Mourad Karoudi
InformationsquelleAutor Mehreen Jamil
Hier ist meine Lösung bitte überprüfen Sie und passen Sie Sie nach Ihren Anforderungen
Dank
InformationsquelleAutor Dineshaws
InformationsquelleAutor Ramesh
Diese Funktion ist nicht gemacht, um verwendet werden, für die englische Sprache. Ich übersetzte die Worte in Englisch. Dies braucht mehr fixieren, bevor Sie Sie zum Englisch.
InformationsquelleAutor shnisaka
Verwendung:
Funktion:
InformationsquelleAutor Limitless isa
Leicht modifiziert Antwort von oben:
InformationsquelleAutor Mr Sorbose
Folgende ist eine sehr einfache und extrem effiziente Lösung.
echo timeElapsed(1201570814);
Beispiel-Ausgabe:
6yrs 4 Monate 3 Wochen 4 Tage 12 STD. 40 min und 36secs.
InformationsquelleAutor user3008679
Hier ist meine Lösung für ein Benachrichtigungs-Modul, das ich gebaut habe vor einiger Zeit. Es gibt eine ähnliche Ausgabe wie die Facebook - Benachrichtigungen-dropdown (zB. 1 Tag, Gerade jetzt, etc).
InformationsquelleAutor Ciaran
geben Sie einfach das Datum, Zeit, um das func. es würde drucken Sie im Zeit-format für Sie
InformationsquelleAutor hrishi
Verwende ich folgende Funktion für mehrere Jahre. Und es funktioniert Prima:
InformationsquelleAutor Ayyaz Zafar