0

我想知道是否有一种方法可以使用 i18n 和 ember.js 在 12 小时制和 24 小时制之间进行转换?

I18n 确实具有下面描述的带有经络的 DATE 对象。但我不确定是否支持 24 小时制和 12 小时制之间的转换。

var DATE = { day_names: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], abbr_day_names: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], month_names: [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], abbr_month_names: [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], meridian: ["AM", "PM"] };

我已经将 i18n 用于我网站国际化的翻译部分。因此,有时不需要额外的库会很好。

4

1 回答 1

0

我最终解决了使用带有 I18n.l 的单独车把日期在 12 和 24 小时之间选择的简化问题。然后我指定了该格式,以便日期对象在 translations.js 中以这种方式格式化

对于英语语言环境等。我使用 12 小时制

time: {
    formats: {
        short: '%-I:%M %p', // hh:mm tt
    },
}

对于挪威语、瑞典语语言环境等。我使用 24 小时制

time: {
    formats: {
         short: '%-H:%M', // hh:mm
    }
}

对于具有不同分隔符和经络以及工作日名称等的语言。您还必须指定这些并且不使用 i18n.js 文件中给出的默认 DATE 对象。

标准 i18n-js 中接受的格式是:

  • %a - 缩写的工作日名称(星期日)
  • %A - 完整的工作日名称 (Sunday) %b - 缩写的月份名称 (Jan)
  • %B - 完整的月份名称(一月)
  • %c - 首选的本地日期和时间表示
  • %d - 月份中的某天 (01..31) %-d - 月份中的某天 (1..31)
  • %H - 一天中的小时,24 小时制 (00..23)
  • %-H - 一天中的小时,24 小时制 (0..23)
  • %I - 一天中的小时,12 小时制 (01..12)
  • %-I - 一天中的小时,12 小时制 (1..12)
  • %m - 一年中的月份 (01..12)
  • %-m - 一年中的月份 (1..12)
  • %M - 分钟 (00..59)
  • %-M - 分钟 (0..59)
  • %p - 子午线指标(上午或下午)
  • %S - 分钟的秒数 (00..60)
  • %-S - 分钟的秒数 (0..60)
  • %w - 星期几(星期日是 0, 0..6)
  • %y - 没有世纪的年份 (00..99)
  • %-y - 没有世纪的年份 (0..99)
  • %Y - 带世纪的年份
  • %z - 时区偏移 (+0545)
于 2014-06-24T20:20:35.940 回答