新的date()在错误的时区
在这篇文章的时候,我目前的时间是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);
但是我会更喜欢更好的方式来做到这一点。 我试着用这个。 我仍然有同样的时间。 在我的代码的其他部分我得到Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
不同于最初的时间。 如果有人能指出这里有什么问题,我会很高兴。
使用moment.js是完成你所要求的最简单的方法。
moment().format() // "2017-01-11T13:56:15-05:00"
输出是ISO-8601格式的string,其中时区偏移在当地时区有效。
你可以用很多代码来读取Date
对象的各种属性,从这些值中构build一个string。 但是它不是以这种方式内置到Date
对象中的。
此外,每当您尝试通过时区偏移调整Date
对象时,请注意,您只是简单地select不同的时间点。 你实际上并没有改变Date对象使用的时区的行为。
如果您有权访问您的php.ini,您可以将date.timezone设置为正确的时区,有效时区的完整列表可以在php.net/manual/timezones.php