Moment Js UTC по местному времени
Я пытаюсь преобразовать время UTC в локальное время. Я следую этому примеру по этой ссылке: http://jsfiddle.net/FLhpq/4/light/. Кажется, я не могу получить правильный локальный выход. Например, если его 10: 30 утра здесь, вместо того, чтобы получать 10:30, получите 15: 30. Вот мой код:
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
var localTime = moment.utc(date).toDate();
localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');
console.log("moment: " + localTime);
Независимо от того, что я делаю, время всегда выходит в UTC. Я живу в Хьюстоне, поэтому я знаю, что часовой пояс - это проблема. Я следил за кодом в ссылке, но, похоже, может получить местное время. Что я делаю неправильно?
Ответы
Ответ 1
Чтобы преобразовать время UTC в Local, вы должны использовать moment.local()
.
Подробнее см. docs
ИЗМЕНИТЬ
Здесь рабочий пример:
var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
console.log(date); // 2015-09-13 03:39:27
var stillUtc = moment.utc(date).toDate();
var local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
console.log(local); // 2015-09-13 09:39:27
Ответ 2
let utcTime = "2017-02-02 08:00:13.567";
var offset = moment().utcOffset();
var localText = moment.utc(utcTime).utcOffset(offset).format("L LT");
Попробуйте JsFiddle
Ответ 3
Примечание. Пожалуйста, обновите формат даты соответственно.
Дата формата
__formatDate: function(myDate){
var ts = moment.utc(myDate);
return ts.local().format('D-MMM-Y');
}
Время форматирования
__formatTime: function(myDate){
var ts = moment.utc(myDate);
return ts.local().format('HH:mm');
},
Ответ 4
Попробуйте следующее:
let utcTime = "2017-02-02 08:00:13";
var local_date= moment.utc(utcTime ).local().format('YYYY-MM-DD HH:mm:ss');