更改托管网站上的时间

时间:2019-01-09 18:55:43

标签: javascript node.js time momentjs clock

我正在尝试将日期/时间转换为本地时间,而不是UTC。

我从API获取日期和时间,这是在UTC上给出的。因此,我需要将其从UTC转换为本地时间,因为在下午6:00之后,它将显示第二天的日期。

我尝试了一下和'toString',它可以在localhost上运行,但是如果托管它,它仍然会给我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 :(得分:0)

您可以使用类似的方法强制问题

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

答案 1 :(得分:0)

如果您知道自己的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`