Reputation: 2445
say i have a date which is
$future_time_ending = "2012-09-21 12:12:22"
How do i work out the number of minutes between the current time and the $future_time_ending
?
Thanks
Upvotes: 10
Views: 34906
Reputation: 15364
One method:
$minutes = (strtotime("2012-09-21 12:12:22") - time()) / 60;
strtotime
converts the date to a Unix timestamp - the number of seconds since the Unix epoch. Subtract the current timestamp and you have the number of seconds between the current time and the future time. Divide by 60 and the result is in minutes.
If you don't know for certain the time you're comparing is in the future, take the absolute value to get a positive number:
$minutes = abs(strtotime("2012-09-21 12:12:22") - time()) / 60;
Just to be complete in my answer, there is a more elaborate OO approach available in PHP:
$time = new DateTime("2012-09-21 12:12:22");
$diff = $time->diff(new DateTime());
$minutes = ($diff->days * 24 * 60) +
($diff->h * 60) + $diff->i;
This is especially useful if the input time is from a time zone other than the server's.
Upvotes: 36