anonymous
anonymous

Reputation: 11

Get time difference

How can I compute time difference in PHP?

example: 2:00 and 3:30.

I want to convert the time to seconds then subtract them then convert it back to hours and minutes to know the difference. Is there an easier way to get the difference?

Upvotes: 1

Views: 1117

Answers (2)

Sim2K
Sim2K

Reputation: 77

Check this link ...

http://www.onlineconversion.com/days_between_advanced.htm

I used this to calculate the difference between server time and the users local time. Grab the hour difference and drop that in a form when the user is registering. I then use it to update the time on the site for the user when they do stuff online.

Once I got it working, I switched this line ...

if (form.date1.value == "")
    form.date1.value = s;

to ...

    form.date1.value = "<?PHP echo date("m/d/Y H:i:s", time()) ?>";

Now I can compare the user time and the server time! You can grab the seconds and mins as well.

Upvotes: 0

alex
alex

Reputation: 490233

Look at the PHP DateTime object.

$dateA = new DateTime('2:00');
$dateB = new DateTime('3:00');

$difference = $dateA->diff($dateB);

(assuming you have >= PHP 5.3)

You can also do it the procedural way...

$dateA = strtotime('2:00');
$dateB = strtotime('3:00');

$difference = $dateB - $dateA;

See it on CodePad.org.

You can get the hour offset like so...

$hours = $difference / 3600;

If you are dealing with times that fall between a 24 hour period (0:00 - 23:59), you could also do...

$hours = (int) date('g', $difference);

Though that is probably too inflexible to be worth implementing.

Upvotes: 3

Related Questions