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

php计算两个日期之间的天数2017-12-21 14:29

我有两个日期:

开始日期: 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)


版权声明:本文为weixin_39553458原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。