这是我的代码:
$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个月之间的差异,就会出错,结果会给我16000+个
例如,根据这段代码,2015年4月26日和2015年5月2日之间的天数差是16557天,我不知道他们是怎么得到这个数字的,但大约是45年,结果总是16000+不管我选择的日期是在12天单月半径之外
最佳答案
当您执行-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