PHP, MySQL: Calculate Number of Days between 2 Dates or Number of Hours, Minutes and Seconds

This is a rather common task in both PHP and MySQL, that is, to calculate and get the days distance (number of days) between 2 given dates.

In PHP, to get the number of days between now and a future date / a past date:

$days = abs(strtotime("2011-11-20") - strtotime(date("Y-m-d"))) / (60 * 60 * 24);

To get the number of days between 2 given dates, just modify the latter strtotime() parameter:

$days = abs(strtotime("2011-11-20") - strtotime("2005-5-4")) / (60 * 60 * 24);

To get the number of hours between 2 dates:

$days = abs(strtotime("2011-11-20") - strtotime("2005-5-4")) / (60 * 60);

Similarly, to get the number of minutes:

$days = abs(strtotime("2011-11-20") - strtotime("2005-5-4")) / 60;

Number of seconds:

$days = abs(strtotime("2011-11-20") - strtotime("2005-5-4"));

In MySQL, to get the number of days between 2 given dates, use the function TO_DAYS():

SELECT TO_DAYS('2009-07-04') - TO_DAYS('2009-06-18');

Which would return:

16

1 thought on “PHP, MySQL: Calculate Number of Days between 2 Dates or Number of Hours, Minutes and Seconds”

Comments are closed.

Scroll to Top