Welcome Guest, Not a member yet? Register   Sign In
Time calculation between 2 dates
#1

Hi Friends,

I have 2 dates with time as below:

From: 2017-03-09 09:26:00
To: 2017-03-11 09:25:00

I need to calculate exact Hour and minutes difference between 2 dates.. However I could get only 23:00 for diff functions.

I need the exact hours and minutes difference..

Please help
Reply
#2

(This post was last modified: 03-30-2017, 02:20 AM by suhindra.)

PHP Code:
$from strtotime("2017-03-09 09:26:00");
$to strtotime("2017-03-11 09:25:00");
echo 
round(abs($to $from) / 60,2). " minute"
Reply
#3

Perhaps not the most elegant - but it works.
PHP Code:
 
  $start 
= new DateTime("2017-03-09 09:26:00");
 
 $end = new DateTime("2017-03-11 09:25:00");
 
 $interval $start->diff($end);
 
 $hrs $interval->24 $interval->h;
 
 echo $hrs." hours ".$interval->format('%i')." minutes"
Reply
#4

@Dave friend solution can be slightly simplify


PHP Code:
 $start = new DateTime("2017-03-09 09:26:00");
 
 $end = new DateTime("2017-03-11 09:25:00");
 
 $interval $start->diff($end);
 
 echo $interval->format('%h hours %i minutes %S seconds'); 
A good decision is based on knowledge and not on numbers. - Plato

Reply
#5

(03-31-2017, 12:14 AM)salain Wrote: @Dave friend solution can be slightly simplify


PHP Code:
 $start = new DateTime("2017-03-09 09:26:00");
 
 $end = new DateTime("2017-03-11 09:25:00");
 
 $interval $start->diff($end);
 
 echo $interval->format('%h hours %i minutes %S seconds'); 

@salain, But that won't give the right answer if the interval is more than a day. Those hours must me added to the result.
Reply
#6

@Dave friend you are right, but your option would also be wrong if it is more than a month.
A good decision is based on knowledge and not on numbers. - Plato

Reply
#7

strtotime is the best option for me Smile
God Bless CI Contributors Smile
Reply
#8

(03-31-2017, 06:10 AM)salain Wrote: @Dave friend you are right, but your option would also be wrong if it is more than a month.

An excellent point!

This revised code handles that.

PHP Code:
$start = new DateTime("2017-03-09 09:26:00");
$end = new DateTime("2017-04-09 09:26:00");
$interval $start->diff($end);
$hrs $interval->days 24 $interval->h;
echo 
$hrs." hours ".$interval->format('%i')." minutes"
Reply
#9

(03-31-2017, 06:17 AM)marksman Wrote: strtotime is the best option for me Smile

strtotime() is the worst thing ever.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB