【发布时间】:2016-10-30 21:05:04
【问题描述】:
我使用 new Date(<date-string>) 和 .getTime() 将日期字符串传递到 1970 年的毫秒数。
问题是日期字符串不包含时区。他们是英国人,因此时区将是 GMT 或 GMT+1,具体取决于日期...
当我在前端 (Chrome) 或后端 (Node.js) 中使用此技术时。采用的时区是英国时区(GMT 或 GMT+1,具体取决于日期)。我假设这是从操作系统中获取的。
但是,当使用我被告知配置为 UTC 的 Node.js 服务器时...时区始终为 GMT,导致英国夏令时出错。
有没有办法告诉Date 在不更改服务器配置的情况下从操作系统获取时区?
例子:
var aDate = new Date('2016-06-23 10:15:0');
var timestamp = aDate.getTime();
以防我的解释不清楚:
// Executed on 28-06-2016
// In the browser (in London)
new Date().getTimezoneOffset(); // -60
new Date('28-06-2016 11:11:11').getTimezoneOffset(); // -60
new Date('28-01-2016 11:11:11').getTimezoneOffset(); // 0
// In the Node.js server I am forced to use, which is configured to use UTC
new Date().getTimezoneOffset(); // 0
new Date('28-06-2016 11:11:11').getTimezoneOffset(); // 0
new Date('28-01-2016 11:11:11').getTimezoneOffset(); // 0
// Ideally, I would like to have the output I get in the browser when I run the code in the UTC Node.js server
【问题讨论】:
标签: javascript node.js date datetime timezone