ZF2 Doctrine ORM モジュールを使用して動的パラメーターをエンティティ クラス名として使用し、そのオブジェクトを初期化し、Excel シート ヘッダーの動的値を使用してデータを保存することで、データを保存しようとしています。
$time = \PHPExcel_Style_NumberFormat::toFormattedString($rowData[0][$key], 'hh:mm:ss');
$obj->$setter(\DateInterval::createFromDateString($this->secondsToTime(strtotime($time))));
$this->orm->persist($obj);
$this->orm->flush();
$this->secondsToTime(strtotime($time)) は、4 時間 5 分 6 秒の形式で時間を返します
フィールド タイプは時間です。$obj->getter() を出力すると、次のように出力されます。
DateInterval Object
(
[y] => 0
[m] => 0
[d] => 0
[h] => 4
[i] => 5
[s] => 6
[weekday] => 0
[weekday_behavior] => 0
[first_last_day_of] => 0
[invert] => 0
[days] =>
[special_type] => 0
[special_amount] => 0
[have_weekday_relative] => 0
[have_special_relative] => 0
)
ただし、データベースに値を 4:05:06 として保存せず、00:00:00 を保存します。ここから答えてみました