使用 laravel Carbon,如何通过数字获取翻译后的日期名称?

Using laravel Carbon, how to get the translated day name by it's number?

使用 Laravel Carbon,如何通过提供天数来获取翻译后的日期名称? (在当前语言环境中)

考虑到我有第 1 天,我想用英语获取星期一,用西班牙语获取 Lunes,用德语获取 Montag,等等。

并且仅通过使用 Carbon,我不想使用转换天数的数组。

我尝试了 Carbon::getDays() 方法,其中 returns 日期名称数组,但不幸的是,只有英文。

Carbon::setLocale('es');

试试这个,对于西班牙语或 de 对于德语等等,

它不漂亮 - 但它有效:

Carbon::now()->year(2018)->dayOfYear(1)->locale('de')->dayName

编辑:

Carbon::now()->year(2019)->dayOfYear(0)->locale('de')->dayName

如果获取日期名称是您唯一关心的问题,您可以使用数组来实现。

$weekdays = Carbon::getDays();

但是,如果您需要一种方法来获取区域设置的名称,则有两种方法可以实现。

  1. 使用翻译字符串(在resources/lang文件夹中。需要手动添加)
  2. 使用碳:
Carbon::create($weekdays[$day])->locale($locale)->dayName;
// Carbon::create($weekdays[1])->locale('fr_FR')->dayName outputs 'lundi'
// Carbon::create($weekdays[1])->locale('es_ES')->dayName outputs 'lunes'
// Carbon::create($weekdays[1])->locale('en_US')->dayName outputs 'monday'

或者,找到以星期一开始的年份,这样就可以避免创建工作日数组。但是,请务必评论您选择该特定年份的原因。