It’s Saturday, what am I doing in front of the computer? I should be out and enjoy life. ^o^
A colleague asked to customize a theme for his blog using WordPress. Because I didn’t have any good plan this Saturday, learning PHP sound like a logical and useful choice. Well, I bribed myself with a bottle of Tui.
Then, I found an interesting PHP related post by Chorn Sokun titled PHP date diff. The author was trying to calculate the number days between two give dates. At the end of the post, he asked “What would you do instead?”
Here is my answer.
< ?php
/*
* Function to calculate the number of days between
* two given dates.
* Assumption:
* $date2 > $date1
* Date format: mm/dd/yyyy e.g.: 31/07/2009
* Author: kenno
* Date: July 4, 2009
*/
function number\_of\_days($date1, $date2) {
$date1Array = explode('/', $date1);
$date1Epoch = mktime(0, 0, 0, $date1Array[1],
$date1Array[0], $date1Array[2]);
$date2Array = explode('/', $date2);
$date2Epoch = mktime(0, 0, 0, $date2Array[1],
$date2Array[0], $date2Array[2]);
$date_diff = $date2Epoch - $date1Epoch;
return round($date_diff / 60 / 60 / 24);
}
echo number\_of\_days("04/7/2009", "12/7/2009"); // 8
?>
Now, it’s my turn to ask. How could I make it better? How would you do it? 🙂
Update:
- Added the
abs()to round up the number of days to integer as suggested by Sokun. - Added
round()to round up the number of days on line 21. I confused theround()function withabs().