文章目录

php计算两个日期之间的天数

我有两个日期:

开始日期: 2007-03-24

结束日期: 2009-06-26

现在我需要找到这两者之间的区别在以下形式:

2年,3个月,2天

要如何才能在PHP中做到这一点?

我们可以使用strtotime()将两个日期转换为unix时间,然后计算它们之间的秒数,由此计算不同的时间段就相当的容易了。

$date1 = "2007-03-24";
$date2 = "2009-06-26";

$diff = abs(strtotime($date2) - strtotime($date1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d daysn", $years, $months, $days);

显然,以上方法最好是在php5.3以上版运行更好。

建议使用DateTime和DateInterval对象。

$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$interval = $date1->diff($date2);
echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";

// shows the total amount of days (not divided into years, months and days like above)
echo "difference " . $interval->days . " days ";

从PHP 5.2.2开始,可以使用比较运算符来比较DateTime对象。

$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2); // bool(false)
var_dump($date1 < $date2);  // bool(true)
var_dump($date1 > $date2);  // bool(false)

本文网址:http://www.santii.com/article/177.html


数据更新时间:2018-09-21