猿问

表中的 Laravel 日期格式

我正在尝试在 laravel 中编辑迁移,以便出生日期获得所需的格式。现在我已经在论坛上搜索了,但没有人解决我的问题(或者我很愚蠢)

下面代码中使用的格式似乎不起作用,因为我在格式的 dd 部分出现错误。我尝试了几种解决方案,包括编辑模型以重新格式化日期,但这没有任何作用。

$table->date(dd, mm, YY)('birth_date');


LEATH
浏览 269回答 3
3回答

繁花如伊

当您设置 dateFormat 属性时,您正在定义日期在数据库中的存储方式以及模型序列化时它们的格式。当您访问模型上的生日属性时,您仍将获得一个 carbon 实例,该实例可用于以您想要的任何方式格式化生日。请注意, dateFormat 还将更改您的birth_date 属性的格式。同时在模型中声明:class ModelName extends Model{       protected $casts = [    'birth_date' => 'datetime:d/m/Y', // Change your format];}

胡说叔叔

您应该在迁移中使用它:$table->date('birth_date');日期总是以相同的格式存储在数据库中。例如,关于 DATE 数据类型的MySQL 文档说:支持的范围是“1000-01-01”到“9999-12-31”。您的应用程序可以将日期更改为您想要的格式。有不同的方法可以实现这一点。在您的观点中,您可以使用format():{{ $user->birth_date->format('dd, mm, YY') }}// or if birth_date can be NULL:{{ optional($user->birth_date)->format('dd, mm, YY') }} 作为替代方案,你可以使用一个访问者在你的模型:public function getBirthDateAttribute($date){    if (is_null($date)) {        return null;    } else {        return Carbon::parse($date)->format('dd, mm, YY');    } }

动漫人物

$table->date('birth_date');您可以在此处保存数据格式(Ymd),例如 (2019-12-31) 然后当您获得此格式时,您可以显示您想要的格式。其他方式,如果你认为$table->string('birth_date');然后保存数据格式(Ymd),如(2019-12-31)。当您尝试显示您想要的数据格式时,只需使用 Carbon\Carbon 并格式化您的日期
随时随地看视频慕课网APP
我要回答