繁体   English   中英

表中的 Laravel 日期格式

[英]Laravel Date Format in Table

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

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

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

您应该在迁移中使用它:

$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');
    } 
}

当您设置 dateFormat 属性时,您正在定义日期在数据库中的存储方式以及模型序列化时它们的格式。

当您访问模型上的生日属性时,您仍将获得一个 carbon 实例,可用于以您想要的任何方式格式化生日。

请注意, dateFormat 还将更改您的birth_date 属性的格式。

还要在模型中声明:

class ModelName extends Model
{      
 protected $casts = [
    'birth_date' => 'datetime:d/m/Y', // Change your format
];
}
$table->date('birth_date');

您可以在此处保存数据格式(Ymd),例如 (2019-12-31) 然后当您获得此格式时,您可以显示您想要的格式。

其他方式,如果你认为

$table->string('birth_date');

然后保存数据格式(Ymd),如(2019-12-31)。

当您尝试显示您想要的数据格式时,只需使用 Carbon\\Carbon 并格式化您的日期

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM