2016-08-11 1 views
0
$to = strtotime("2008-12-13 10:42:00"); 
$from = strtotime("2008-12-13 10:21:00"); 
echo round(abs($to_time - $from_time)/60,2). " minute"; 
echo round(abs($to_time - $from_time)/3600,2). " hours"; 

Es funktioniert gut, wenn ich in Minuten umwandel, aber wenn in Stunden umgewandelt wird, gibt es nicht die richtige Ausgabe.So berechnen Sie den Zeitunterschied

+1

Bitte erklären: „Es ist nicht die korrekte Ausgabe zu geben“. Was hast du erwartet, was hast du bekommen? –

Antwort

0

Dies sollte es tun:

$from = new DateTime('2008-12-13 10:21:00'); 
$to = new DateTime('2008-12-13 10:42:00'); 

$diff = $to->diff($from); 
$hours = $diff->h;//hours 
$mins = $diff->i;//minutes 
echo $hours.':'.$mins; 

Mit dem über dem $ diff ist ein Array diese enthält Schlüssel:

DateInterval Object 
(
    [y] => 0 
    [m] => 0 
    [d] => 0 
    [h] => 0 
    [i] => 21 
    [s] => 0 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 1 
    [days] => 0 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
) 
0

Ich weiß nicht, was ist die "richtige Ausgabe", die Sie erwarten.

21 minute 
0.35 hours 

Der Unterschied beträgt 21 Minuten, also 0,35h ist richtig.

Anyways Code falsch ist, den Sie verwenden $from_time und $to_time statt $to und $from

Verwandte Themen