使用JS从新Date()开始的UTC时间

时间:2018-03-25 14:44:04

标签: javascript node.js

我检查了很多地方但找不到合适的答案。我必须得到UTC的当前时间,然后减去几天(比如说2天)。因此,如果今天是3月25日,我想获取格林尼治标准时间3月23日00:00后过去2天的数据。

我可以在GMT中获得个人小时和分钟。但是当我做新的Date()时,它会给我当地的时间戳。通常我会从当前时间和我必须减去的天数中减去当前GMT小时和分钟。

但是当我做一个新的Date()而不是GMT时,我得到当地时间。我可以执行toUTCString(),但这是在以我的本地时间格式获取时间之后。如果我减去当地时间,那么我的代码将无法普遍使用。

所以我需要以UTC格式获取新的Date()函数。我查了很多地方,但似乎没什么用。

2 个答案:

答案 0 :(得分:2)

getTime方法将返回一个数字,表示从纪元(1970年1月1日00:00:00 UTC)开始经过的毫秒数。此方法始终使用UTC进行时间表示。

然后你可以减去2天并获得另一个Date实例:

Buffer.from(result.Body).toString('base64')

答案 1 :(得分:1)

我建议您使用Moment.js来操作日期。

特别是使用此库添加或减去日期非常容易,例如:

moment().subtract(2, 'days')

如果你想本地化,有很多方法可以做到,但其中一个是this

const d = new Date();
d.setDate(d.getDate() - 2);

关于UTC日期:

  

但是当我做新的Date()时,它会给我本地时间戳

这只是一个字符串表示,根据环境的不同而不同。日期内部存储在UTC中,因此使用new Date()并使用它进行操作没有问题。