2017-05-04 3 views
0

Ich habe ein kleines Problem in meinem Code. Ich versuche den Unterschied zwischen 2 mal zu berechnen.Kleines Problem PHP date/strtotime Funktion

Dies ist mein Code:

$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']); 
echo date("H:i", $dif); 

$ tt [ 'endtime'] = 13.00 und $ tt [ 'Startzeit'] 12:00, so dass die Ausgabe soll 01.00 sein, aber die Ausgabe ist 02:00.

Was mache ich falsch?

Vielen Dank im Voraus!

+3

'date' erwartet einen Unix-Zeitstempel, die Differenz zwischen 2. –

+1

Sie versuchen Datum Unterschied zu konvertieren Datum. Was passiert, wenn Sie am 4. Mai 11.00 Uhr und 5. Mai 11.00 Uhr haben? –

+0

Wie möchten Sie das Format als das zeigen, was Sie gerade tun, ist der Unterschied, der falsch ist, müssen Sie diese manuell konvertieren –

Antwort

0

Das liegt daran, dass die Ausgabe von durch die Zeitzone Ihres Servers "geändert" wird. Sie können this question für weitere Informationen sehen.

Stattdessen können Sie gmdate() für die (keine Probleme mit Zeitzonen) verwenden:

$endtime = "13:00"; 
$starttime = "12:00"; 
$difference = abs(strtotime($endtime) - strtotime($starttime)); 
echo gmdate("H:i", $difference); 
// 01:00 

Siehe https://3v4l.org/BkRFM für die Ausgabe.

0

Verwenden Sie diesen Code für Zeitsubtraktion

$tt['endtime'] = '13:00:00'; 
$tt['starttime'] = '12:00:00'; 

$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']); //here you can subtraction occurs 

echo gmdate("H:i", $dif); // In this step you got the correct output 01:00 
0

Verwenden gmdate()

$dif = strtotime('13:00')-strtotime('12:00'); 
echo gmdate("H:i", $dif);