Изменение времени на размещенном сайте - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь преобразовать дату / время в местное время вместо UTC.

Я получаю дату и время от API, и это происходит в UTC. Поэтому мне нужно преобразовать его из UTC в местное время, потому что после 18:00 он отображает дату следующего дня.

Я пробовал момент и toString, и он работает на локальном хосте, но если я его размещаю, он все равно дает мне UTC

let dateTesting = subscription.current_period_started_at._
let dateTesting2 = moment.utc(dateTesting).local().format('MM-DD-    YYYY HH:mm:ss')
let dateTesting3 = dateTesting.toString("MM/dd/yyyy HH:mm")

console.log('- now in UTC', dateTesting)
console.log('dateTesting2 -------', dateTesting2)
console.log('without moment', dateTesting3)

Результат из кода выше:

now in UTC 2019-01-09T17:16:25Z
dateTesting2 ------- 01-09-2019 17:16:25
without moment 2019-01-09T17:16:25Z

Я хочу, чтобы дата отображалась так же, как на моем компьютере (-6 часов)

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Если вы знаете свой TIME_ZONE (обязательно), вы можете использовать:

const TIME_ZONE = -6;
const now = new Date(dateTesting);
now.setHours(now.getHours + TIME_ZONE) // or now.setMinutes(now.getMinutes()+ 60 * TIME_ZONE))
// because sometime TIME_ZONE is not `int`, example 4.5, 5.5, v.v,
//use with variable now, it's time same your time

Если вы бежите куда-либо, вы можете получить время UTC и преобразовать его в свое время, или вы можете использовать getTimezoneOffset:

const TIME_OFFSET = 360; // TIME_OFFSET = TIME_ZONE * 60

const now = new Date(time_of_any_where);
const thatOffset = now.getTimezoneOffset();
now.setMinutes(now.getMinutes+ thatOffset - TIME_OFFSET)

// Do something with `now`
0 голосов
/ 09 января 2019

Вы можете вызвать проблему с чем-то вроде

`moment.utc(dateTesting).local().format('MM-DD-YYYY HH:mm:ss').subtract(6, 'hours)`
...