Преобразование между 12-часовыми и 24-часовыми часами с i18n в ember.js

Я задавался вопросом, есть ли способ конвертировать между 12-часовыми и 24-часовыми часами, используя i18n и ember.js?

У 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 для переводческой части интернационализации моего сайта. Так что было бы неплохо, чтобы временами не требовалась дополнительная библиотека.

1 ответ

Решение

Я закончил тем, что решил упрощенную проблему выбора между 12 и 24 часами, используя отдельные даты руля с I18n.l. Затем я указал этот формат, чтобы объекты даты форматировались таким образом в translations.js

Для английского языка и т. Д. Я использую 12-часовые часы

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

Для норвежского, шведского языка и т. Д. Я использую 24-часовые часы

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

Для языков с разными разделителями и меридианами и названиями для будних дней и т. Д. Вы также должны указать их и не использовать объект DATE по умолчанию, указанный в файле i18n.js.

Принятые форматы в стандарте i18n-js:

  • % a - сокращенное название дня недели (вс)
  • % A - полное название дня недели (воскресенье).% B - сокращенное название месяца (январь).
  • % 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 - индикатор меридиана (AM или PM)
  • % S - секунда минуты (00.. 60)
  • % -S - секунда минуты (0..60)
  • % w - день недели (воскресенье 0, 0,6)
  • % y - год без века (00..99)
  • % -y - год без века (0..99)
  • % Y - год с веком
  • %z - Смещение часового пояса (+0545)
Другие вопросы по тегам