moment.js не создает правильную дату - PullRequest
0 голосов
/ 17 октября 2018

Я не могу понять, в чем проблема, у меня есть функция ручного ввода времени на моем веб-сайте, где пользователь может ввести время, а затем я сохраняю его в БД.

Так выглядит моя функциявот так ..

createTime() {
    this.startTime =  moment(`${this.hour}:${this.minute} ${this.timeOfDay}`, `HH:mm a`).utc();
}

поэтому я набрал 5:45 вечера

1007 * сейчас, когда я console.log() созданный момент я получаю это ...

enter image description here

так что это правильное время UTC, но оно говорит, что в AUS TIME

затем, когда я получаю время с сервера и затем пытаюсь преобразовать его обратно в локальныйвремя, как так ..

fixTime(momentObject: moment.Moment) {
    return moment(momentObject).local().format('hh:mm A');
}

Я получаю 4:45 утра

Я не могу понять, в чем проблема .. как я могу это исправить?

1 Ответ

0 голосов
/ 17 октября 2018
   fixTime(momentObject: moment.Moment) {

    var testDateUtc = moment.utc(momentObject);
    var localDate = moment(testDateUtc).local();
    return localDate.format('hh:mm A');
}

Вы должны создать объект момента и установить флаг UTC на true для объекта и Создать локализованный объект момента, преобразованный из исходного объекта момента и, наконец, вернуть отформатированную строку из объекта локализованного момента.

См .: http://momentjs.com/docs/#/manipulating/local/

...