以天为单位获取PHP日期时间差,将午夜视为一天的变化

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

用什么方法来获得两个DateTimes的天差?将午夜视为一天的变化(就像DATEDIFF(DAY)SQL函数一样)?

例如,在今天的13:00和明天的12:00之间,即使间隔小于24小时,我也应该得到1(天)。

$date1 = new DateTime("2013-08-07 13:00:00");
$date2 = new DateTime("2013-08-08 12:00:00");
echo $date1->diff($date2)->days; // 0
提问于
用户回答回答于

可以忽略日期字符串的时间部分。

$date1 = new DateTime(date('Y-m-d', strtotime("2013-08-07 13:00:00")));
$date2 = new DateTime(date('Y-m-d', strtotime("2013-08-08 12:00:00")));
echo $date1->diff($date2)->days; // 0
用户回答回答于

一个简单的解决方案来剥离时间或设置它00:00:00,应该总是给你想要的结果:

$date1 = new DateTime("2013-08-07");
$date2 = new DateTime("2013-08-08");
echo $date1->diff($date2)->days;

或者

$date1 = new DateTime("2013-08-07 00:00:00");
$date2 = new DateTime("2013-08-08 00:00:00");
echo $date1->diff($date2)->days;

扫码关注云+社区

领取腾讯云代金券