42 Stimmen

Wie finde ich den Stundenunterschied zwischen zwei Daten in PHP?

Ich habe zwei Datumsangaben im Format "J-m-d H:i:s". Ich muss diese beiden Daten vergleichen und den Stundenunterschied herausfinden.

84voto

Aillyn Punkte 22344

Sie können sie in Zeitstempel umwandeln und von dort aus weiterarbeiten:

$hourdiff = round((strtotime($time1) - strtotime($time2))/3600, 1);

Dividieren durch 3600, weil eine Stunde 3600 Sekunden hat, und verwenden round() um eine Vielzahl von Nachkommastellen zu vermeiden.

35voto

Sougata Bose Punkte 30931

Sie können verwenden DateTime Klasse auch -

$d1= new DateTime("06-08-2015 01:33:26pm"); // first date
$d2= new DateTime("06-07-2015 10:33:26am"); // second date
$interval= $d1->diff($d2); // get difference between two dates
echo ($interval->days * 24) + $interval->h; // convert days to hours and add hours from difference

7voto

Philippe Gerber Punkte 16773
$seconds = strtotime($date2) - strtotime($date1);
$hours = $seconds / 60 / 60;

7voto

Paul T. Rawkeen Punkte 3848

Als Zusatz zur akzeptierten Antwort möchte ich daran erinnern, dass \DateTime::diff ist verfügbar!

$f = 'Y-m-d H:i:s';
$d1 = \DateTime::createFromFormat($date1, $f);
$d2 = \DateTime::createFromFormat($date2, $f);

/**
 * @var \DateInterval $diff
 */
$diff = $d2->diff($d1);
$hours = $diff->h + ($diff->days * 24); // + ($diff->m > 30 ? 1 : 0) to be more precise

\DateInterval Dokumentation.

4voto

Vishal Punkte 21

Versuchen Sie dies:

    $time1 = new DateTime('06:56:58');
    $time2 = new DateTime('15:35:00');
    $time_diff = $time1->diff($time2);
    echo $time_diff->h.' hours';
    echo $time_diff->i.' minutes';
    echo $time_diff->s.' seconds';

Ausgabe:

8 Stunden 38 Minuten 2 Sekunden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X