使用碳翻译日期拉拉维尔



希望你没事! 我有一个问题,我有很多问题,在我的 Laravel 应用程序上,到处我都使用 Carbon 作为记录的日期,因为,我没有使用created_at来调用日期,我使用的是不同的行,在这种情况下,该行调用event_date_start,在我的控制器中,创建新事件时, 日期将以这种格式保存m/d/Y h:i a所以,请求,它是这样的:$event->event_date_start = Carbon::p arse($request->event_date_start)->format('m/d/Y h:i a');

在这一步之前一切都很好,问题是当我在刀片上调用那行时,'因为给我英文记录,比如"一月",但我需要"Enero">

我创建了一个开关,还使用了来自GitHub的包,并且还创建了一个特征,但是所有这些东西都仅适用于"created:at"和"updated_at"行

如果有人能帮助我,我将不胜感激!

使用 translatedFormat() 而不是 format()

$event->event_date_start = Carbon::parse($request->event_date_start)->translatedFormat('m/d/Y h:i a');

你可以通过添加以下行来告诉Carbon使用某种语言:

Carbon::setLocale('es');

请参阅:http://carbon.nesbot.com/docs/(本地化部分)

您是否尝试过将event_date_start放在模型的$dates属性中?如果没有,可以通过在模型中创建名为$datesprotected属性来实现。

protected $dates = ['event_date_start'];

默认情况下,Laravel在Carbon实例中转换模型的created_atupdated_at属性,所以我认为,当Laravel转换它时,它会利用应用程序中日期的配置(例如,假设您已将Laravel应用程序配置为以西班牙语显示日期)。

通过做我的建议,我希望并且我相信Laravel会对属性event_date_start同样的事情。 此外,通过这样做,您不必将日期解析为Carbon实例即可将其保存在模型中。

我相信这会做到的。

$event->event_date_start = $request->event_date_start;

如果您对格式有任何约束,则可以在模型中添加另一个名为dateFormat的属性。

protected $dateFormat = 'm/d/Y h:i a';

希望对您有所帮助。

参考: https://laravel.com/docs/5.5/eloquent-mutators#date-mutators

最新更新