php 使用Carbon,如何通过日期的编号获得翻译后的日期名称?

b1uwtaje  于 2023-09-29  发布在  PHP
关注(0)|答案(4)|浏览(95)

使用Carbon,如何通过提供日期编号来获得翻译后的日期名称?(在当前区域设置中)
假设我有第一天,我想得到英语的Monday,西班牙语的Lunes,德语的Montag等等。
只使用Carbon,我不想使用转换后的天数数组。
我尝试了Carbon::getDays()方法,该方法返回日期名称数组,但不幸的是,只有英文。

wljmcqd8

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'

或者,找一个以星期一开始的年份,你就可以避免制作一个星期天数组。但是,请务必说明您选择该特定年份的原因。

xdyibdwo

xdyibdwo2#

Carbon::setLocale('es');

试试这个,西班牙语是de,德语是de,等等

bnl4lu3b

bnl4lu3b3#

这并不漂亮-但这是有效的:
Carbon::now()->year(2018)->dayOfYear(1)->locale('de')->dayName

编辑:

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

rks48beu

rks48beu4#

此版本将使用应用程序区域设置返回本地化的日期名称。
collect(Carbon::getDays())->map(fn($dayName) => ucfirst(Carbon::create($dayName)->dayName));

相关问题