2017-05-09 1 views
0

ich derzeit immer den Unterschied zwischen zwei Zeiten in Minuten, wie dies unten, und es funktioniert gut ...Wie erhalten Sie den geringsten Unterschied zwischen zwei Zeiten in PHP?

$time1 = strtotime($firsttime); 
$time2 = strtotime($secondtime); 
$interval = abs($time2 - $time1); 
$diffinminutes = round($interval/60); 

Aber sagen wir zum Beispiel ...

$firsttime = 02:05 
$secondtime = 20:05 

Diese Berechnung würde 1080 zurückkehren Minuten (18 Stunden x 60 Minuten).

Ich möchte in der Lage sein, den kürzesten Unterschied zu bekommen, basierend auf der Zeit, die ein verbundener Kreis ist (d. H. Wie eine Uhr haha).

Also im obigen Beispiel würde ich es lieber von 02:05 Uhr "zurückgehen", bis es 20:05 trifft und somit 360 Minuten zurückkehrt (6 Stunden x 60 Minuten).

Mit anderen Worten, ich suche den kürzesten Unterschied, egal in welche Richtung wir gehen, um es zu finden.

Hoffentlich macht das Sinn.

Jeder Einblick, wie man dies erreicht, würde geschätzt werden, danke!

+0

zuerst Sie 02:05 in 14:05 umwandeln und dann subtrahieren ... –

+0

Mögliche Duplikate von [Zeitunterschied zwischen zwei Mal in PHP erhalten] (http://stackoverflow.com/questions/13928021/getting-time -difference-zwischen-zwei-mal-in-php) –

Antwort

1

(Dies setzt voraus, Ihre Eingaben nur Zeiten sind und nicht Zeitstempel.)

Wenn das Ergebnis von mehr als 12 Stunden beträgt, dann subtrahiert es nur von 24:

if ($result > 720) { 
    $result = 1440 - $result; 
} 

Vielleicht möchten Sie die Änderungen > bis >= je nachdem, auf welche Seite die Verbindungen fallen sollen.

+0

So einfach aber effektiv, danke! – user3304303

Verwandte Themen