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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值