new Date() 在错误的时区
new Date() in wrong time zone
此时 post 我的当前时间是 2017-01-10T19:23:00.000Z
但 new Date()
比我当前的时区早 2017-01-11T00:23:19.521Z
5 小时。这会影响我的数据在 MongoDB 中的存储方式。我知道我可以使用
将时间设置为 5 小时前
var datetime = new Date();
datetime.setHours(datetime.getHours()-5);
但我更喜欢用更好的方法来做到这一点。 I tried using this.我还是一样的时间。在我的代码的其他部分,我得到 Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
与初始时间不同。如果有人能指出这里出了什么问题,我会很高兴。
使用 moment.js 是完成您的要求的最简单方法。
moment().format() // "2017-01-11T13:56:15-05:00"
输出是一个 ISO-8601 格式的字符串,时区偏移在您当地的时区有效。
您可以自己使用大量代码读取 Date
对象的各种属性,从这些值构建一个字符串。但它不是以这种方式内置到 Date
对象中。
此外,请注意,任何时候您尝试通过时区偏移调整 Date
对象时,您只是在选择不同的时间点。您实际上并没有更改 Date 对象所使用的时区的行为。
如果您不想使用外部 JS 文件,您可以简单地使用以下代码获取当前时区。
new Date().toString();
此时 post 我的当前时间是 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);
但我更喜欢用更好的方法来做到这一点。 I tried using this.我还是一样的时间。在我的代码的其他部分,我得到 Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
与初始时间不同。如果有人能指出这里出了什么问题,我会很高兴。
使用 moment.js 是完成您的要求的最简单方法。
moment().format() // "2017-01-11T13:56:15-05:00"
输出是一个 ISO-8601 格式的字符串,时区偏移在您当地的时区有效。
您可以自己使用大量代码读取 Date
对象的各种属性,从这些值构建一个字符串。但它不是以这种方式内置到 Date
对象中。
此外,请注意,任何时候您尝试通过时区偏移调整 Date
对象时,您只是在选择不同的时间点。您实际上并没有更改 Date 对象所使用的时区的行为。
如果您不想使用外部 JS 文件,您可以简单地使用以下代码获取当前时区。
new Date().toString();