zoscoit
asked on
php datetime difference
Dear All
I want to calculate the difference days between two dates, then I want to use function ceiling (ceil) in the end.
but I found strange case , please copy the code and see the result for both samples, the difference only between these two samples I changed the month
both samples it should give me same result.
what is my mistake in this code ?
what is the best way to calculate the difference days between two dates?
I want to calculate the difference days between two dates, then I want to use function ceiling (ceil) in the end.
but I found strange case , please copy the code and see the result for both samples, the difference only between these two samples I changed the month
both samples it should give me same result.
what is my mistake in this code ?
what is the best way to calculate the difference days between two dates?
<style type="text/css">table, td {border: 1px solid black;border-collapse: collapse;padding: 5px;}</style>
<?php
$from_time1 = strtotime("2014-10-22 17:00:00");
$to_time1 = strtotime("2014-10-26 16:55:00");
$from_time2 = strtotime("2014-11-22 17:00:00");
$to_time2 = strtotime("2014-11-26 16:55:00");
?>
<TABLE>
<tr>
<td> No#</td>
<td> From Date Time</td>
<td> To Date Time</td>
<td> Result </td>
<td> Ceil() </td>
</tr>
<tr>
<td> 1 </td>
<td> <?php echo "2014-10-22 17:00:00"; ?> </td>
<td> <?php echo "2014-10-26 16:55:00"; ?> </td>
<td> <?php echo (($to_time1-$from_time1) / 86400 ). " Days"; ?> </td>
<td> <?php echo Ceil(($to_time1-$from_time1) / 86400 ). " Days"; ?> </td>
</tr>
<tr>
<td> 2 </td>
<td> <?php echo "2014-11-22 17:00:00"; ?> </td>
<td> <?php echo "2014-11-26 16:55:00"; ?> </td>
<td> <?php echo (($to_time2-$from_time2) / 86400 ). " Days"; ?> </td>
<td> <?php echo Ceil(($to_time2-$from_time2) / 86400 ). " Days"; ?> </td>
</tr>
</TABLE>
I get the same answers for both (see below) - what should I be seeing?
If all you are wanting is the days difference then use the date_diff function
This question and many others about Date/Time processing is addressed in the article here:
https://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html
To clarify, when you want the differences between two dates, you probably do not want to take the time of day into account. It might seem intuitive that you can just say a day has 86,400 seconds (60*60*24) but that is not true on at least two days of the year if you perform your calculations in a zone that uses daylight savings time. And there are leap years, leap seconds, etc., to further complicate things. So use the built-in functions as much as possible and avoid making the computations yourself.
https://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html
To clarify, when you want the differences between two dates, you probably do not want to take the time of day into account. It might seem intuitive that you can just say a day has 86,400 seconds (60*60*24) but that is not true on at least two days of the year if you perform your calculations in a zone that uses daylight savings time. And there are leap years, leap seconds, etc., to further complicate things. So use the built-in functions as much as possible and avoid making the computations yourself.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Gary 2014-11-03 at 19:03:56
Please make it simple and show me how?
Ray Paseur 2014-11-03 at 19:05:46
what is you mean by the built-in functions
ASKER
it solved by add one line in php file
date_default_timezone_set("Asia/Riyadh");
ASKER
add one line to php file
date_default_timezone_set( "Asia/Riya dh");
date_default_timezone_set(