Преобразование часового пояса Rails для использования в Javascript Day.js

#javascript #ruby-on-rails #ruby #date #dayjs

Вопрос:

Я использую ввод часового пояса Rails:

  <%= time_zone_select( "user", "time_zone", nil, default: "Pacific Time (US amp; Canada)" ) %>
 

но теперь я пытаюсь передать это значение (сохраненное в javascript в переменной user_timezone_string) компоненту javascript с помощью day.js:

   dayjs.extend(utc)
  dayjs.extend(timezone)

  var now = dayjs().tz(user_timezone_string)
 

Я пробовал делать:

   <%= ActiveSupport::TimeZone.find_tzinfo(time_zone).to_s.sub! ' - ', '/' %>
 

который работает в некоторых часовых поясах, но не работает в Буэно-Айресе (03:00 по Гринвичу) и других.

Комментарии:

1. Каковы выходные данные в консоли user_timezone_string и сейчас?

2. Согласно его документации , day.js возвращает «часовой пояс» в качестве репрезентативного местоположения IANA, например «Европа/Берлин», который представляет все текущие и исторические смещения для Берлина , включая все изменения в местных и переходах на летнее время. Часовой пояс, такой как «Тихоокеанское время» (он же Тихоокеанское стандартное время или PST), представляет собой одно смещение, т. Е. UTC-8. В настоящее время во всех местах, которые находятся в часовом поясе PST, наблюдается переход на летнее время, он же PDT.

3. PS. PST также означает стандартное время Питкэрна, в котором не соблюдается переход на летнее время, поэтому PST работает круглый год. 🙂