2016-03-20 25 views
0

Ich versuche, den Zeitunterschied zwischen dem aktuellen Datum und einem anderen Datum in PHP zu bekommen, aber ich bekomme falsche Ergebnisse. Sie ist mein Code so weit:Versuchen, den Unterschied in Stunden zwischen zwei Daten zu erhalten

function hoursDifference($date) 
{ 
    return round((time()- strtotime($date))/3600); 
} 

Das Eingangsdatum ist: 2016.03.20 03.55.51 aber die aktuelle Zeit ist das 24-Stunden-Format, so dass die H 15 statt 3 und die Funktion gibt eine korrekte 12-Stunden-Zeitdifferenz zurück. Wie kann ich das beheben?

+0

Werfen Sie einen Blick auf [Datetime :: diff] (http://php.net/manual/en/ datetime.diff.php) – fusion3k

+0

duplizieren: http://stackoverflow.com/a/3923228/2087463 – tmthydvnprt

Antwort

0

Für 12 Stunden Datum statt 24 Stunden Datum verwenden Sie ein Kleinbuchstabe 'h'. Sie sollten auch DateTime::diff wie @ fusion3k erwähnt betrachten.

This link sollte Ihnen auch helfen, welche Parameter Sie für Ihr $ -Datum verwenden können.

0

Versuchen mit diesem

function hoursDifference($date) 
{ 
    return round(strtotime(date("Y-m-d h:i:s")) - strtotime($date))/3600); 
} 
0

das Objekt Datetime verwenden: http://php.net/manual/de/class.datetime.php

echo hoursDifference("2016-03-20 12:13:12"); 

function hoursDifference($date) 
{ 
    $d = new DateTime($date); 
    $now = new DateTime(); 
    $iv = $now->diff($d); 
    return $iv->h; 
} 
Verwandte Themen