get difference in time in HH:MM format php

后端 未结 2 1737
灰色年华
灰色年华 2020-12-20 21:44

how can i get this to output

HH:MM format?

 $to_time = strtotime(\"2008-12-13 10:42:00\");  <--AM
 $from_time = strtotime(\"2008-12-14 8:21:00\")         


        
相关标签:
2条回答
  • 2020-12-20 22:13

    First of all you need to include AM and PM in your date strings, otherwise 2008-12-14 8:21:00 will be interpreted as 8:21 AM

    Now the difference between two dates is 2019 that is 33h:19m, you cant' have t with standard date formats, since they support only 24h clock. You should keep $stat as integer, and display it with sprintf like like this:

    echo sprintf('%02dh:%02dm', $stat/60, $stat%60);
    
    0 讨论(0)
  • 2020-12-20 22:26

    Firstly, 8:21:00 will be interpreted as 8AM unless you specified otherwise using DateTime::createFromFormat().

    To work out time differences, use DateTime::diff():

    $to = new DateTime("2008-12-13 10:42:00");
    $from = new DateTime("2008-12-14 8:21:00");
    
    $stat = $to->diff($from); // DateInterval object
    
    echo $stat->format('%Hh:%Im');
    

    This will display the hour/minute difference between the two times, but only up to 24 hours.

    If you need more than 24 hours, you should do the following:

    $hours   = $stat->days * 24 + $stat->h;
    $minutes = $stat->i;
    
    printf('%02sh:%sm', $hours, $minutes);
    
    0 讨论(0)
提交回复
热议问题