可能重复:
How to find number of days between two dates using php
有没有一种快速简便的方法来计算这种格式(YYYY-MM-DD
)与PHP(不是MySQL)的两个日期字符串之间的天数差异?
答案 0 :(得分:17)
$date1 = new DateTime("2010-07-06"); //inclusive
$date2 = new DateTime("2010-07-09"); //exclusive
$diff = $date2->diff($date1);
echo $diff->format("%a"); //3
(仅限PHP 5.3及更高版本)
我为PHP看到的唯一解决方案< 5.2是循环:
strtotime("-1 days");
strtotime("-2 days");
...
strtotime("-n days");
直到我们到达第一个日期的unix时间戳。从概念上讲,你可以通过首先猜测两天时间戳差异然后测试邻域的天数来更有效地进行。
date_default_timezone_set("Europe/Lisbon");
$date1 = strtotime("2010-03-28");
$date2 = strtotime("2010-03-29");
echo ($date2-$date1)/86400; //gives 0.95833333333333
$date1 = strtotime("2010-10-31");
$date2 = strtotime("2010-11-01");
echo ($date2-$date1)/86400; //gives 1.0416666666667
正如戈登正确指出的那样,如果以前将时区设置为“UTC”,则除以86400将是此问题的有效解决方案 - 只是不要忘记将其恢复到之前的值。
答案 1 :(得分:2)
您可以使用此功能获取两个date("Y-m-d H:i:s")
之间的天数:
function dateDiff($dateStart, $dateEnd)
{
$start = strtotime($dateStart);
$end = strtotime($dateEnd);
$days = $end - $start;
$days = ceil($days/86400);
return $days;
}
答案 2 :(得分:1)