在 rails i18n 和 bootstrap datepicker 之间同步日期格式

Synchronize date format between rails i18n and bootstrap datepicker

bootstrap 日期选择器要求日期格式为:

mm/dd/yyyy

但 Rails i18n 格式定义为:

%m/%d/%Y

我的网站有很多不同的翻译。我想以 Rails i18n 格式定义日期格式并将其传递给日期选择器,以便我只为每个语言环境定义一次日期格式。

我可以使用以下方法检索当前语言环境的日期格式:

I18n.translate('date.formats.default')

有没有一种简单的方法可以将 %m/%d/%Y 转换为 mm/dd/yyyy 以便它可以与日期选择器一起使用?

Bootstrap 日期选择器可以配置为所需的格式:

$('.datepicker').datepicker({
  format: 'mm/dd/yyyy'
});

我建议设置一个特定于每种语言的必需日期选择器format

# config/locales/en.yml
pirate:
time:
  formats:
    short: "%m/%d/%y"
    datepicker: "mm/dd/yyyy"

然后您应该能够将其传递给日期选择器:

$('.datepicker').datepicker({
  format: <%= I18n.t 'time.formats.datepicker' %>
});

理想情况下,您希望日期选择器以相同的格式提交日期时间,而不管它如何显示给用户。查看 the bootstrap format api doc 以获取有关提供不同显示和(提交的)值的信息