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

问题描述 投票:0回答:4

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

假设我有第一天,我想用英语表示星期一,用西班牙语表示 Lunes,用德语表示 Montag 等等。

并且只有使用 Carbon,我才不想使用翻译日期的数组。

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

php php-carbon
4个回答
9
投票

如果获取日期名称是您唯一关心的问题,您可以使用数组来完成此操作。

$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'

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


1
投票
Carbon::setLocale('es');

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


1
投票

这并不漂亮 - 但这很有效:

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

编辑:

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


0
投票

此版本将使用应用程序区域设置返回本地化的日期名称。

collect(Carbon::getDays())->map(fn($dayName) => ucfirst(Carbon::create($dayName)->dayName));

© www.soinside.com 2019 - 2024. All rights reserved.