使用DateTime :: diff()返回两个日期之间的天数

时间:2013-06-24 18:51:35

标签: php

我目前正在使用DateTime :: diff()来返回两个日期之间的天,小时,分钟和秒。

问题是当差异超过30天,而不是返回33天时,它会返回1个月和3天。

有没有办法告诉它相应的日子而不是月份。

一些代码:

$date1      =   new DateTime(date('Y-m-d H:i:s', time()));
$date2      =   new DateTime($row['start']);

$interval   =   $date1->diff($date2);

$days       =   $newInfo[$key]['days'] = $interval->format("%d"); 
$hours      =   $newInfo[$key]['hours'] = $interval->format("%h"); 
$minutes    =   $newInfo[$key]['minutes'] = $interval->format("%i"); 
$seconds    =   $newInfo[$key]['seconds'] = $interval->format("%s"); 

2 个答案:

答案 0 :(得分:5)

这个确切的情况有一个特殊的格式参数:

<?php
$days = $newInfo[$key]['days'] = $interval->format("%a");

答案 1 :(得分:0)

您似乎想要使用DateInterval::format()

从示例部分:

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a will output the total number of days.
echo $interval->format('%a total days')."\n";