Laravelフレームワークを使用してMySQLデータベースからいくつかのデータをクエリしています。かなり長いので、クエリ全体を投稿することはしません。
$logs = DB::query('SELECT ... FROM .. JOIN ... WHERE .. GROUP BY .. ORDER BY');
単純なforeachループを使用して結果を反復処理し、次のようにPHPExcelを使用してレポートを生成しています。
foreach($logs as $log):
...
endforeach;
ループ内では、次のように月の2つの日付の差を計算しています。
$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'));
データの損失の原因は何ですか?