Laravel后端用Eloquent模型输出数据时,它自带的时间戳会带有.000000Z等字符串。
例如这样的:
created_at: "2021-07-17T17:06:25.000000Z"
解决方法:参考了stackoverflow这个回答的做法。
在相应的Model里加上函数:(有问题,见下文)
//在相应的model里 public function getCreatedAtAttribute($value) { $date = Carbon::parse($value); return $date->format('Y-m-d H:i'); } public function getUpdatedAtAttribute($value) { $date = Carbon::parse($value); return $date->format('Y-m-d H:i'); }
就可以正常输出了:
created_at: "2021-07-17 17:06"
用的是laravel自带的PHP工具Carbon
记得先在Model头部Use Carbon/Carbon。
——————————修正————————————
上述方法不对,Laravel 7之后,会导致日期输出JSON时回到UTC±0区。
应该用这个。在相应的Model里加上函数;
protected function serializeDate($date) { return $date->format('Y-m-d H:i'); }
就可以了。 也不用Carbon了。
文章评论