我正在使用Laravel框架从MySQL数据库查询一些数据。我不会发布整个查询,因为它很长。
$logs = DB::query('SELECT ... FROM .. JOIN ... WHERE .. GROUP BY .. ORDER BY');
我使用简单的foreach循环迭代结果并使用PHPExcel生成报告,如下所示:
foreach($logs as $log):
...
endforeach;
在循环中,我按如下方式计算月份中两个日期之间的差异:
$cntr_startdate = new DateTime($log->start_date);
$cntr_enddate = new DateTime($log->end_date);
$conterm = $cntr_enddate->diff($cntr_startdate);
$cterm = (($conterm->format('%y') * 12) + $conterm->format('%m'));
在以下行之后,$ log对象中的rate字段以某种方式被破坏并返回垃圾,如b,X和O.5(其余字段未被触及)。
$cterm = (($conterm->format('%y') * 12) + $conterm->format('%m'));
可能导致数据丢失的原因是什么?
答案 0 :(得分:0)
尝试使用MySQL TIMESTAMPDIFF函数,让MySQL为您进行计算。无论如何,我认为这样会更有效率。