在这篇文章发表这篇文章时,我当前的时间是2017-01-10T19:23:00.000Z
,但new Date()
给了我2017-01-11T00:23:19.521Z
比我当前的时区早 5 小时。这会影响我的数据存储在MongoDB中的方式。我知道我可以使用
var datetime = new Date();
datetime.setHours(datetime.getHours()-5);
但我更喜欢更好的方法来做到这一点。我试过用这个。我仍然有相同的时间。在我的代码的其他部分,我得到Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
与最初时间不同。如果有人能指出这里出了什么问题,我会很高兴。
使用时刻.js是完成您所问的最简单方法。
moment().format() // "2017-01-11T13:56:15-05:00"
输出是 ISO-8601 格式的字符串,时区偏移量在本地时区中有效。
您可以使用大量代码自己执行此操作,这些代码读取Date
对象的各种属性,并从这些值生成字符串。 但它不是以这种方式内置到Date
对象中。
另外,请注意,每当您尝试按时区偏移量调整Date
对象时,您只是在选择不同的时间点。 您实际上并没有更改 Date 对象正在使用的时区的行为。
如果您不想使用任何外部 JS 文件,您只需使用以下代码即可获取当前时区。
new Date().toString();