我试图在数据表中显示一些数据时间值,这是示例代码
<html>
<head>
<script type="text/javascript">
console.log(new Date(2017,2,26,0,0,0));
console.log(new Date(2017,2,26,1,0,0));
console.log(new Date(2017,2,26,2,0,0));
console.log(new Date(2017,2,26,3,0,0));
</script>
</head>
<body>
</body>
</html>
浏览器显示上午2点的重复值。 这是日志输出
Sun Mar 26 2017 00:00:00 GMT+0000 (GMT Standard Time)
Sun Mar 26 2017 02:00:00 GMT+0100 (GMT Daylight Time)
Sun Mar 26 2017 02:00:00 GMT+0100 (GMT Daylight Time) **(Should it not be 3am)**
Sun Mar 26 2017 03:00:00 GMT+0100 (GMT Daylight Time) **(Should it not be 4am)**
我知道我可以使用Date.UTC()
console.log(new Date(Date.UTC(2017,2,26,0,0,0)));
console.log(new Date(Date.UTC(2017,2,26,1,0,0)));
console.log(new Date(Date.UTC(2017,2,26,2,0,0)));
console.log(new Date(Date.UTC(2017,2,26,3,0,0)));
但是这会在其他时区显示错误的日期时间值。 有人可以建议解决这个问题吗?或者有人可以解释这里发生的事情......?
答案 0 :(得分:1)
此行为取决于您计算机上当前设置的时区参与夏令时的时间Does Everyone Observe Daylight Saving Time?
如果您将语言环境切换到冰岛时区,例如(UTC+00:00) Monrovia, Rejkjavik
并在控制台中执行代码:
new Date(2017,2,26,0,0,0)
new Date(2017,2,26,1,0,0)
new Date(2017,2,26,2,0,0)
new Date(2017,2,26,3,0,0)
您将看到显示所有小时数的输出:
Sun Mar 26 2017 00:00:00 GMT+0000 (Greenwich Standard Time)
Sun Mar 26 2017 01:00:00 GMT+0000 (Greenwich Standard Time)
Sun Mar 26 2017 02:00:00 GMT+0000 (Greenwich Standard Time)
Sun Mar 26 2017 03:00:00 GMT+0000 (Greenwich Standard Time)
对于参与夏令时的国家,根据时区,我们将失踪。
您还可以查看(UTC+10:00) Brisbane
,澳大利亚,您会看到从3月27日午夜到3月27日午夜的所有时间都正确显示。
答案 1 :(得分:-2)
如果您可以使用库,我强烈建议您使用MomentJS,这将使您的生活更轻松。
console.log(moment("2017-02-26 00:00:00").format());
console.log(moment("2017-02-26 01:00:00").format());
console.log(moment("2017-02-26 02:00:00").format());
console.log(moment("2017-02-26 03:00:00").format());