• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
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
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


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.