在本文发布时,我的当前时间为2017-01-10T19:23:00.000Z
,但new Date()
比我现在的时区提前5小时2017-01-11T00:23:19.521Z
。这会影响我的数据存储在MongoDB中的方式。我知道我可以使用
var datetime = new Date();
datetime.setHours(datetime.getHours()-5);
但我希望有更好的方法来做到这一点。 I tried using this.我还有同样的时间。在我的代码的其他部分,我得到Tue Jan 10 2017 19:54:30 GMT-0500 (EST)
与初始时间不同。如果有人能指出这里的错误,我会很高兴。
答案 0 :(得分:2)
使用moment.js是完成所要求的最简单方法。
moment().format() // "2017-01-11T13:56:15-05:00"
输出为ISO-8601格式的字符串,时区偏移在您的本地时区生效。
您可以使用大量代码来自己执行此操作,这些代码读取Date
对象的各种属性,从这些值构建字符串。但它并没有以这种方式内置到Date
对象中。
另外,请注意,每当您尝试按时区偏移调整Date
对象时,您只需选择一个不同的时间点。您实际上并没有更改Date对象使用的时区的行为。
答案 1 :(得分:0)
如果您不想使用任何外部JS文件,则只需使用以下代码即可获取当前时区。
print, while glob '{A,B,C,D,#,@,a,d,e,f}'x4
答案 2 :(得分:-6)
如果您有权访问php.ini,可以将date.timezone设置为正确的时区,有效时区的完整列表可以在php.net/manual/timezones.php