Как получить список часовых поясов, используя library.js?
Мне нужно сделать <select> список всех текущих мировых часовых поясов. Как получить массив с списком часовых поясов?
Ответы
Ответ 1
Для часового пояса вы должны вручную добавить JS файл с часовым поясом, сделанный вами.
На этой странице вы можете выбрать зоны вверх и сгенерировать файл, который будет загружен после первой загрузки moment.js
.
У вас должно быть что-то вроде этого, посмотрите:
<script src="/javascripts/modules/moment/moment-with-langs.min.js"></script>
<script src="/javascripts/modules/moment/moment-timezone.min.js"></script>
<script src="/javascripts/modules/moment/moment-timezone-data.js"></script>
JS moment-timezone-data.js
- это настраиваемый список часовых поясов.
Однако, насколько я знаю, MomentJS не возвращает вам список всех часовых поясов, потому что также можно изменить часовой пояс. Если вам нужно заполнить тег select
, я предлагаю вам вручную разобрать список часовых поясов по ссылке выше.
Ответ 2
Сначала включите moment-timezone
с данными, а затем вы можете использовать moment.tz.names();
Ответ 3
var timeZones = moment.tz.names();
См. http://momentjs.com/timezone/docs/#/data-loading/getting-zone-names/
Ответ 4
Есть 378 часовых поясов. Часовой пояс - это любая комбинация правил времени, включая DST, которая действовала в течение любого периода времени, в любом регионе, независимо от того, насколько крошечный - например, в одном городе в Индиане, который решил уйти с летнего времени на два лет в 1940-х годах. Или, чтобы взять более свежий пример, северокорейский часовой пояс, который был просто поднят на 30 минут. Или дюжина часовых поясов только для Антарктиды.
Я сомневаюсь, что вы хотите показать все эти часовые пояса в своем раскрывающемся списке. Вам нужно выбрать наиболее распространенные 50-100 или около того. Вы можете либо сделать это самостоятельно, либо скопировать список с какого-либо сайта, такого как Google. Вероятно, вы хотите выбрать хотя бы один часовой пояс из каждого из 24 смещений, поэтому независимо от того, где находится человек, они могут найти один из таких совпадений.
Ответ 5
Остерегайтесь того, что time.js по умолчанию не имеет момента-timezone.js, вы должны его получить.
bower install moment-timezone --save
npm install moment-timezone --save
Install-Package Moment.Timezone.js
Или Downlaod
Тогда вам может потребоваться массив часовых поясов таким образом:
var timezones = moment.tz.names();
Еще один полезный трюк заключается в том, что вы можете установить (угадать) текущий часовой пояс пользователя, так что вам не нужно заставить пользователя искать свой часовой пояс в огромном списке, или вы можете установить часовой пояс по умолчанию, а затем разрешить пользователь меняет его, если он ему нужен.
var currentUserTimezone = moment.tz.guess();
Кроме того, вы можете получить аббревиатуру от часовых поясов, если они вам понадобятся, в случае, если вы должны предоставить и массив сокращений временных интервалов:
moment.tz('America/Los_Angeles').format('z') //PDT
полная документация по time-timezone.js