【问题标题】:Date() function is an hour lateDate() 函数晚了一个小时
【发布时间】:2015-10-18 08:37:40
【问题描述】:

我正在使用当前时间创建一个新的Date() 并设置它的小时数 到 0。直到几天前一切都很好,但现在它变得 过去一天的 23:00,而不是当前的 00:00。

有人知道为什么吗?

代码可以在这里找到https://jsfiddle.net/f1kshewz/2/

输出:

2015 年 10 月 17 日星期六 23:00:00 GMT-0300 (BRT)

【问题讨论】:

标签: javascript date


【解决方案1】:

使用此代码检查您的时区:

var d = new Date()
var n = d.getTimezoneOffset();
console.log(n); // minutes

让UTC时间像这样:

new Date(Date.UTC(year, month, day, hour, minute, second))

【讨论】:

  • 感谢您的回答!但我用isDaylightSavingTime() 函数解决了这个问题!
【解决方案2】:

根据您的时间偏移,我假设您在巴西?所以看起来夏令时意味着你的当地时间在昨晚午夜比格林尼治标准时间提前了一个小时http://www.timeanddate.com/time/change/brazil/brasilia?year=2015

我发现 moment.js 在处理日期和时间时非常有用:http://momentjs.com/

【讨论】:

  • 感谢@atomless 的帮助!是的,它确实是夏令时,因此我可以通过在设置中添加条件来简单地解决问题。关于图书馆,我实际上正在使用那个;)谢谢
  • @AlexandreAraujo 很高兴我能提供帮助。如果您使用了时刻时区库,则无需担心条件,因为它会为您处理:momentjs.com/timezone/docs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2011-12-07
  • 2020-10-20
  • 2013-07-22
相关资源
最近更新 更多