首页 > 解决方案 > Laravel 本地化日期格式(模式)

问题描述

我想设置 Laravel 和 Carbon,以便根据用户选择的当前语言环境,日期将以正确的模式格式化。我认为在所需的语言环境上设置 LC_TIME 就足够了,然后使用 Carbon 方法toDateString来获得正确的格式,但是,无论设置了 LC_TIME,它总是返回格式为 yyyy-mm-dd 的日期字符串。

预期结果:
- 如果选择意大利语,则 mm/dd/yyyy
- 如果选择英语,则 yyyy-mm-dd
- 依此类推

我正在使用 Laravel 5.5 和 Carbon 1.36.1

标签: laraveldateformattostringphp-carbon

解决方案


Carbon::now()->isoFormat('L');

为您提供当前语言环境的当前标准数字格式日期(“it_IT”为 20/5/2020,“en_US”为 2020/5/20)。

您可以在翻译中为给定的语言环境自定义此格式:

Translator::get('en')->setTranslations([
  'formats' => [
    'L' => 'YYYY-MM-DD',
  ],
]);

推荐阅读