Dividing seconds into months or years is only an approximation because calendar units vary in length. Use DateTimeInterface::diff() for calendar-aware differences.
$start = new DateTimeImmutable('2026-09-01');
$end = new DateTimeImmutable('2026-09-14');
$diff = $start->diff($end);
echo $diff->days . ' days';This current example appears first; the detailed examples below are retained and modernized for comparison and additional use cases.
$d1=mktime(22,0,0,1,1,2007);
$d2=mktime(0,0,0,1,2,2007);
echo "Hours difference = ".floor(($d2-$d1)/3600) . "<br>";
echo "Minutes difference = ".floor(($d2-$d1)/60) . "<br>";
echo "Seconds difference = " .($d2-$d1). "<br>";
echo "Month difference = ".floor(($d2-$d1)/2628000) . "<br>";
echo "Days difference = ".floor(($d2-$d1)/86400) . "<br>";
echo "Year difference = ".floor(($d2-$d1)/31536000) . "<br>";
mktime() : create the timestamp using date and time
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.
| Sashi | 20-03-2010 |
| Thanks for providing this simple and efficient date difference check functionality. It works ! | |
| Sadart Abukari | 09-07-2011 |
| Great article for all my data manipulation needs. Implemented it with sessions using explode() to turn time stored in session as string and passed it to call_user_func_array with mktime and the exploded array as parameters. Thanks a bunch. | |
| sriram | 25-07-2014 |
| nice code | |
| Riddhish | 09-04-2015 |
| Really Helpfull | |