Подтвердить что ты не робот

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. Я живу в Хьюстоне, поэтому я знаю, что часовой пояс - это проблема. Я следил за кодом в ссылке, но, похоже, может получить местное время. Что я делаю неправильно?

4b9b3361

Ответ 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');