使用Carbon,如何通过提供日期编号来获得翻译后的日期名称?(在当前区域设置中)假设我有第一天,我想得到英语的Monday,西班牙语的Lunes,德语的Montag等等。只使用Carbon,我不想使用转换后的天数数组。我尝试了Carbon::getDays()方法,该方法返回日期名称数组,但不幸的是,只有英文。
wljmcqd81#
如果获取日期名称是您唯一关心的问题,则可以使用数组来实现。
$weekdays = Carbon::getDays();
但是,如果您需要一种方法来获取区域设置的名称,则有两种方法。1.使用翻译字符串(在resources/lang文件夹中。需要手动添加)1.使用碳:
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'
或者,找一个以星期一开始的年份,你就可以避免制作一个星期天数组。但是,请务必说明您选择该特定年份的原因。
xdyibdwo2#
Carbon::setLocale('es');
试试这个,西班牙语是de,德语是de,等等
bnl4lu3b3#
这并不漂亮-但这是有效的:Carbon::now()->year(2018)->dayOfYear(1)->locale('de')->dayName
Carbon::now()->year(2018)->dayOfYear(1)->locale('de')->dayName
编辑:
Carbon::now()->year(2019)->dayOfYear(0)->locale('de')->dayName
rks48beu4#
此版本将使用应用程序区域设置返回本地化的日期名称。collect(Carbon::getDays())->map(fn($dayName) => ucfirst(Carbon::create($dayName)->dayName));
collect(Carbon::getDays())->map(fn($dayName) => ucfirst(Carbon::create($dayName)->dayName));
4条答案
按热度按时间wljmcqd81#
如果获取日期名称是您唯一关心的问题,则可以使用数组来实现。
但是,如果您需要一种方法来获取区域设置的名称,则有两种方法。
1.使用翻译字符串(在resources/lang文件夹中。需要手动添加)
1.使用碳:
或者,找一个以星期一开始的年份,你就可以避免制作一个星期天数组。但是,请务必说明您选择该特定年份的原因。
xdyibdwo2#
试试这个,西班牙语是de,德语是de,等等
bnl4lu3b3#
这并不漂亮-但这是有效的:
Carbon::now()->year(2018)->dayOfYear(1)->locale('de')->dayName
编辑:
Carbon::now()->year(2019)->dayOfYear(0)->locale('de')->dayName
rks48beu4#
此版本将使用应用程序区域设置返回本地化的日期名称。
collect(Carbon::getDays())->map(fn($dayName) => ucfirst(Carbon::create($dayName)->dayName));