Wie berechnet man die Minutendifferenz zwischen zwei Datums- und Uhrzeitangaben in PHP?
268
Subtrahieren Sie die Vergangenheit am meisten von der Zukunft am meisten und dividieren Sie durch 60.
Die Zeiten werden im Unix-Format angegeben, sodass es sich nur um eine große Zahl handelt, die die Anzahl der Sekunden ab angibt January 1, 1970, 00:00:00 GMT
Die obigen Antworten gelten für ältere Versionen von PHP. Verwenden Sie die DateTime-Klasse, um Datumsberechnungen durchzuführen, da PHP 5.3 die Norm ist. Z.B.
$ Since_start ist ein DateInterval- Objekt. Beachten Sie, dass die Eigenschaft days verfügbar ist (da wir die diff-Methode der DateTime-Klasse zum Generieren des DateInterval-Objekts verwendet haben).
Der obige Code wird ausgegeben:
1837 Tage insgesamt
5 Jahre
0 Monate
10 Tage
6 Stunden
14 Minuten
2 Sekunden
So erhalten Sie die Gesamtzahl der Minuten:
Dies wird Folgendes ausgeben:
2645654 Minuten
Welches ist die tatsächliche Anzahl von Minuten, die zwischen den beiden Daten vergangen sind. Die DateTime-Klasse berücksichtigt die Sommerzeit (abhängig von der Zeitzone), wo dies auf "alte Weise" nicht der Fall ist. Lesen Sie das Handbuch zu Datum und Uhrzeit http://www.php.net/manual/en/book.datetime.php
quelle
inSeconds()
oder ähnliches, jetzt ist es Code-Wiederholung überall dort, wo ich die Differenz in Sekunden berechnen muss.$dateFrom = new DateTime('2007-09-01 04:10:58'); $dateTo = new DateTime('2012-09-11 10:25:00'); echo ($dateTo->getTimestamp()-$dateFrom->getTimestamp())/60 ;
strtotime
Antwort darüber? Dies scheint ein Fall von OOP zu sein, wenn das Verfahren MINDESTENS als gültige (und wesentlich präzisere) Lösung gilt.Hier ist die Antwort:
quelle
/ 60,2
bedeutet das: durch sechzig teilen, auf die nächsten zwei Dezimalstellen runden.strtotime
mag veraltet sein, aber es ist nicht unzuverlässig, wenn Sie es richtig verwenden. Es liegt auf der Hand, dass Sie mit konsistenten Datumsformaten arbeiten müssen, um die Daten korrekt lesen (oder analysieren) zu können. Sehen SieISO 8601
und beschuldigen Sie nicht die Werkzeuge: =)quelle
sleep
, um eine Datumsdifferenz zu berechnen?Es hat bei meinen Programmen funktioniert, ich benutze
date_diff
, Sie können dasdate_diff
Handbuch hier überprüfen .Sie erhalten Ergebnisse, was Sie wollen.
quelle
ein anderer Weg mit Zeitzone.
quelle
$days = $interval->format('%d');
und der Unterschied ist($days * 1440 + $hours * 60 + $minutes)
. Seit Monaten, Jahren => gleiche LogikIch habe diese Funktion für eine meiner Blog-Sites geschrieben (Unterschied zwischen einem vergangenen Datum und dem Datum des Servers). Sie erhalten eine solche Ausgabe
"Vor 49 Sekunden", "vor 20 Minuten", "vor 21 Stunden" und so weiter
Ich habe eine Funktion verwendet, mit der ich die Differenz zwischen dem übergebenen Datum und dem Datum des Servers ermitteln kann.
Speichern Sie es als Datei, nehmen Sie "date.php" an. Rufen Sie die Funktion von einer anderen Seite wie dieser auf
Natürlich können Sie die Funktion so ändern, dass zwei Werte übergeben werden.
quelle
Ich denke, das wird dir helfen
quelle
$minutes = floor(($seconds/60)%60);
quelle
Eine universellere Version, die Ergebnisse in Tagen, Stunden, Minuten oder Sekunden einschließlich Brüchen / Dezimalstellen zurückgibt:
quelle
So habe ich "vor xx mal" in PHP> 5.2 angezeigt. Hier finden Sie weitere Informationen zum DateTime- Objekt
quelle
Ausgabe:
quelle
Subtrahieren Sie die Zeiten und dividieren Sie durch 60.
Hier ist ein Beispiel, das die verstrichene Zeit
2019/02/01 10:23:45
in Minuten berechnet :quelle
Meine Lösung, um den Unterschied zwischen zwei Daten zu finden, ist hier. Mit dieser Funktion können Sie Unterschiede wie Sekunden, Minuten, Stunden, Tage, Jahre und Monate feststellen.
Sie können diese Funktion entwickeln. Ich habe getestet und arbeite für mich. Die Ausgabe des DateInterval-Objekts erfolgt hier:
Funktionsnutzung:
$ date = das vergangene Datum, $ diff = Typ zB: "Minuten", "Tage", "Sekunden"
Viel Glück.
quelle
Das wird helfen....
quelle
Ich habe so viele Lösungen gefunden, aber nie die richtige Lösung gefunden. Aber ich habe einen Code erstellt, um Minuten zu finden. Bitte überprüfen Sie ihn.
Es gibt eine Ausgabe in Stunden und Minuten, zum Beispiel 01 Stunde 02 Minuten wie 01:02
quelle