【发布时间】:2021-03-08 21:02:17
【问题描述】:
我从前端收到一个日期,需要将其保存为我的 Laravel API 上的 UNIX 时间戳。
日期格式可以是YYYY-MM-DD hh:mm,也可以只是日期格式YYYY-MM-DD
在我的模型中,我定义了修改器和访问器来将日期转换为时间戳,反之亦然。从我在文档和在线阅读的内容来看,这是正确的做法。
public function setStartAttribute($value)
{
$this->attributes['start'] = strtotime($value);
}
public function getStartAttribute($value)
{
$value = Carbon::createFromTimestamp($value)->toDateTimeString();
return $value;
}
我在迁移中也将字段定义为timestamp...
$table->timestamp('start')->nullable()->default(null);
最后是控制器创建条目...
$entry = entry::create([
'name' => $request->name,
'description' => $request->description,
'type' => $request->type,
'start' => $request->start,
]);
但每当我尝试创建新条目时,我仍然会收到错误 SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1615381200' for column 'start' at row 1。
为什么在我将其转换为时间戳后尝试将其保存为 datetime 值?
【问题讨论】: