Yesterday, my friend Roshan was was struggling to find the days difference between to two dates in PHP. Well, after a while I came up with the solution for him. The date format he’s using was “YYYY-MM-DD”, which is the standard format of date value stored in the MySql database.

#### Function to find the difference of days between two dates

function daysDifference($endDate, $beginDate) { //explode the date by "-" and storing to array $date_parts1=explode("-", $beginDate); $date_parts2=explode("-", $endDate); //gregoriantojd() Converts a Gregorian date to Julian Day Count $start_date=gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]); $end_date=gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]); return $end_date - $start_date; }

The above function is fairly simple, first of all the dates values in the format “YYYY-MM-DD” is separated into array by using explode() function. The first element of array contains the year, the second element contains the month and the last element contains the day value.

And the most import function in finding the days difference is gregoriantojd(), this function converts a Gregorian date to Julian Day Count. This function takes three parameters- month, day and year.

And in the last line of the function, the difference between the Julian Day count of two dates are calculated and returned.

**Example :**

<?php echo daysDifference('2008-03-12','2008-03-09'); ?>

What is the output of the above statement, I don’t think I need to write it down. But, I’m a nice guy and never leave the suspense, it’s 3 .

hi! nice function.. but was just wondering why the function had to convert a Gregorian date to Julian day Count? [sorry.. it’s the first time I saw it..]

dear val..Julian day Count in PHP supports dates ranging from 4714 B.C. to 9999 A.D so I’ve converted the Gregorian date to Julian day Count in this function.

ah.. i see.. uwkiee.. thanks for answering my question..

Hi,

I have found all of your articles very useful and to the point. Thank you.

Bill

Thanks bill for the appreciation…

thankyou thankyou thankyou ðŸ˜€

can u please tell me how to compaire day month and year given two date form two date field……………………! (‘,’)

Thanks for the code, it works great!

Thank you excellent function too much helpful

I think this is better than aboe proposed solution

function daysDifference($endDate, $beginDate)

{

$beginDate = strtotime($beginDate);

$endDate = strtotime($endDate);

$diff = $endDate – $beginDate;

$diff = ceil($diff / (60*60*24)) ;

return $diff;

}

Thank you. I have been looking around for this function.

Thanks dear all my friends this example very good for my website

Hi Roshan,

Calculate How Many Days User Has Stayed With The Book Once She Return It).

I am learning PHP/MySQL, and I am also writting the Library Management

System to make sure that I practice what I am learning.

My Problem is:

I want to capture the date when the library user borrow the book and then

check that date to see if the book have exceeded the number of days (to

calculate how many days user has stayed with the book once she return it).

Please help me how I can do that. I am using mysql as my database.

i find your codes very useful,

thanks in advance…

Hi Roshan, the following page contains a reference to this article. Great information.

Calculate the difference between two Dates (and time) using Php. The following page provides a range of different methods (7 in total) for performing date / time calculations using Php, to determine the difference in time (hours, munites), days, months or years between two dates.

See Php Date Time – 7 Methods to Calculate the Difference between 2 dates

Thanks for the scrpt!

Nice Code Roshan !!

Thanks.

Calculating the date difference based on time stamp is most robust way since it takes care off the difference in date and time formats. example

function GetDateDifference ($Date1,$Date2)

{

$ConvertToTimeStamp _Date1 = strtotime($Date1);

$ConvertToTimeStamp_Date2 = strtotime($Date2);

$DateDifference = (int)$ConvertToTimeStamp _Date1 – (int)$ConvertToTimeStamp_Date2;

return round($DateDifference/86400);

}

Not working dude

Nice code, great job

ty

Ya this is good solution… But i can’t get the result.

thanks for your script