Как преобразовать дату Moment.js в местный часовой пояс пользователя?
79686 просмотра
4 ответа
Я использую платформы Moment.js и Moment-Timezone, и у меня есть объект даты Moment.js, который явно находится в часовом поясе UTC. Как я могу преобразовать это в текущий часовой пояс браузера?
var testDateUtc = moment.tz("2015-01-30 10:00:00", "UTC");
var localDate = ???
Так что было бы хорошо, если бы я мог узнать местный часовой пояс пользователя; или в качестве альтернативы я хотел бы преобразовать объект даты в другой объект данных, который просто использует «местный часовой пояс», независимо от того, что это на самом деле.
Автор: oliver Источник Размещён: 12.11.2019 09:27Ответы (4)
116 плюса
Вам не нужно использовать момент-часовой пояс для этого. Основная библиотека moment.js обладает полной функциональностью для работы с UTC и местным часовым поясом.
var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).local();
Оттуда вы можете использовать любые функции, которые вы можете ожидать:
var s = localDate.format("YYYY-MM-DD HH:mm:ss");
var d = localDate.toDate();
// etc...
Обратите внимание, что, передав объект testDateUtc
, который является moment
объектом, обратно в moment()
конструктор, он создает клон . В противном случае, когда вы вызываете .local()
, это также изменит testDateUtc
значение, а не только localDate
значение. Моменты изменчивы .
Также обратите внимание, что если ваш исходный ввод содержит смещение часового пояса, такое как +00:00
или Z
, то вы можете просто проанализировать его напрямую moment
. Вам не нужно использовать .utc
или .local
. Например:
var localDate = moment("2015-01-30T10:00:00Z");
Автор: Matt Johnson-Pint
Размещён: 24.03.2015 06:59
16 плюса
var dateFormat = 'YYYY-DD-MM HH:mm:ss';
var testDateUtc = moment.utc('2015-01-30 10:00:00');
var localDate = testDateUtc.local();
console.log(localDate.format(dateFormat)); // 2015-30-01 02:00:00
- Определите свой формат даты.
- Создайте объект момента и установите флаг UTC на true для объекта.
- Создайте локализованный объект момента, преобразованный из исходного объекта момента.
- Вернуть отформатированную строку из локализованного объекта момента.
Смотрите: http://momentjs.com/docs/#/manipulation/local/
Автор: AndrewHenderson Размещён: 10.12.2015 07:064 плюса
Вот что я сделал:
var timestamp = moment.unix({{ time }});
var utcOffset = moment().utcOffset();
var local_time = timestamp.add(utcOffset, "minutes");
var dateString = local_time.fromNow();
Где {{ time }}
находится отметка времени utc.
1 плюс
Используйте функцию utcOffset.
var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).utcOffset(10 * 60); //set timezone offset in minutes
console.log(localDate.format()); //2015-01-30T20:00:00+10:00
Автор: Alexey Ryazhskikh
Размещён: 11.05.2015 09:42
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- date Как получить разницу между двумя датами в JavaScript?
- date Получить последний день месяца в Python
- date DateTime.Now против DateTime.UtcNow
- date Получить последнюю пятницу месяца в Java
- date Why does Javascript getYear() return 108?
- timezone Определить часовой пояс пользователя
- timezone Обработка часовых поясов в хранилище?
- timezone Отображение даты / времени в формате локали пользователя и смещения времени
- timezone Как я могу получить текущую дату и время в UTC или GMT в Java?
- timezone мировые часы командной строки?
- momentjs Full humanized durations in moment.js
- momentjs Сравнение сегодняшней даты с другой датой в данный момент возвращает неправильную дату, почему?
- momentjs Как я могу использовать format () для момента moment.js?
- momentjs Как использовать `moment.js` с Meteor?
- momentjs Как удалить время с даты с помощью Moment.js?