【问题标题】:new Date() converts timezonenew Date() 转换时区
【发布时间】:2015-04-11 12:28:36
【问题描述】:

new Date() 为什么要转换时区?我希望我的日期与我提供的字符串相同,所以00:30 而不是10:30

>>> new Date("2015-04-11T00:30:00");
Sat Apr 11 2015 10:30:00 GMT+1000 (AEST)

【问题讨论】:

  • 因为日期构造函数在您的浏览器中运行,并使用您计算机上设置的任何时间和时区。

标签: javascript date


【解决方案1】:

您将 ISO 格式的日期传递给构造函数“2015-04-11T00:30:00”。 这意味着您的浏览器不会将其解释为当地时间,而是解释为 UTC。但是 Date.toString 使用您的本地时间。如果您想使用 UTC 时间,请调用 .toUTCString 或更好的 .toISOString。

【讨论】:

  • 学到了新东西!删除了我的答案,如果你有一个信息来源,请发表评论。
  • 这里是关于 Date 的 MDN 文档。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 和一些关于 ISO 时间的事情 en.wikipedia.org/wiki/ISO_8601
  • 在 javascript 控制台中执行 new Date() 时,浏览器会自动在创建的对象上调用 .toString 并且 toString 会查看您的本地时区。如果对给定 Date 对象真正代表的时间存在混淆,我建议始终调用 .toISOString 方法。事实上,即使没有混淆,在处理日期时也应该始终使用 toISOString 或 toJSON。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多