момент js 'from' дает странный результат - PullRequest
0 голосов
/ 05 августа 2020

Я получаю date из бэкэнда следующим образом [2020, 8, 5, 13, 29, 43, 780000000] (это UT C дата).

Мне нужно сравнить эту дату с текущим UT C, чтобы получить относительное время . В этом примере текущий UT C был: - 2020-08-05T15:59:52.514Z

Ожидаемое относительное время составляло 2 часа 30 минут. Я не уверен, почему фактический ответ от Moment JS составляет 16 часов.

const timeInUTC = moment.utc(date)
const currentTimeInUTC = moment.utc(new Date().toISOString())
console.log(timeInUTC.from(currentTimeInUTC))

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 августа 2020

Проблема была в формате. Дата, которая была введена в момент, была в формате массива, в то время как i вычислял текущее время в ut c в «формате ut c».

После проверки того, что оба имеют одинаковый формат, проблема решена.

const dateInUTCFormat = new Date(
        Date.UTC(date.value[0], date.value[1] - 1, date.value[2], date.value[3], date.value[4], date.value[5])
    )

    const timeInUTC = moment(dateInUTCFormat)
    const currentTimeInUTC = moment.utc()
    console.log(timeInUTC.from(currentTimeInUTC)

)

...