0

我正在使用 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'));

什么可能导致数据丢失?

4

1 回答 1

0

尝试使用 MySQL TIMESTAMPDIFF 函数,让 MySQL 为您进行计算。无论如何,我认为这会更有效率。

于 2013-03-06T15:48:59.450 回答