这是我的代码:
$logdate = Input::get('logdate');
$enddate = Input::get('enddate');
//Cast the dates to yyyy-dd-mm format for comparison
$startdt = date('Y-d-m',strtotime($logdate));
$enddt = date('Y-d-m',strtotime($enddate));
//Cast the dates into datetime objects
$date1 = new DateTime($startdt);
$date2 = new DateTime($enddt);
//Calculate the difference between the 2 datetime objects
$diff = $date1->diff($date2, true);
//cast logdate into correct format for entry in the database
$newlogdate = strtotime($logdate);
$formatlogdate = date('Y-d-m',$newlogdate);
我用它来获取间隔中的天数:
Log::info(intval($diff->days));
这里的代码可以正常工作,只要我在同一个月编写涉及12天差异或更少的代码,但是一旦超过12天或者我试图计算2个月之间的差异haywire并因此给了我16000+
例如根据此代码,2015年4月26日至2015年5月2日之间的天数差异为16557天,我不知道他们如何得到这个数字,但它是45左右年,并且结果总是16000 +无论我选择哪个日期,因为它们在12天单月半径之外
答案 0 :(得分:2)
当你这样做时 - date('Y-d-m',strtotime($logdate));
它会返回 - 1970-01-01
这两个日期。
/
正在制造问题。
试试这个 -
$log = '26/04/2015';
$end = '02/05/2015';
$date1 = new DateTime(str_replace('/', '-', $log));
$date2 = new DateTime(str_replace('/', '-', $end));
$diff = $date1->diff($date2, true);
echo $diff->days;
<强>输出强>
6
答案 1 :(得分:0)
你这样做的正确方法是: -
namespace=
host: 'facebook.com'
user: 'facebook.com/user/42342342'
答案 2 :(得分:0)
或尝试一下:
$datetime1 = strtotime("2011-10-10 10:00:00");
$datetime2 = strtotime("2011-10-10 10:45:00");
$interval = abs($datetime2 - $datetime1);
$minutes = round($interval / 60);
echo 'Diff. in minutes is: '.$minutes;