【问题标题】:javascript new Date(date) return wrong dayjavascript new Date(date) 返回错误的日期
【发布时间】:2013-09-10 21:38:46
【问题描述】:

我试图用这个 sintax 来对抗树 javascript Date 对象

 var from = new Date(1900,0,0);
 var to = new Date();
 var dataTicket = new Date(dataString);

     if (dataTicket > from && dataTicket < to) {
     alert("OK");
     }

但我无法让它工作,因为 dataTicket 继续给我错误的一天!

当我在控制台中检查时,我在 if 语句中有这个值:

dataString = "2013 年 9 月 10 日星期二 22:44:07 GMT 0200 (ora legale Europa occidentale)"

来自 = "Sun Dec 31 1899 00:00:00 GMT+0100 (ora solare Europa occidentale)"

to="Tue Sep 10 2013 23:32:44 GMT+0200 (ora legale Europa occidentale)"

奇怪的事情来了:

dataTicket = "2013 年 9 月 11 日星期三 00:44:07 GMT+0200 (ora legale Europa occidentale)"

我可以让它工作,因为 dataTicket 值是它分配后的一天,有什么线索吗?

【问题讨论】:

  • 月份从0开始,天从1开始
  • 那么如果我设置第 10 个月,我将得到 9 月而不是 10 月,对吗?但在这里我在设置 10 时进入第 11 天:\

标签: javascript date compare


【解决方案1】:

您的dateString 有一个损坏的zone 部分。对于 RFC2822,zone 应该有一个 +-,但你的没有,然后它被解释为 UTC (+0000);实际上时间是 00:44:27 而不是 22:44:27。

dataString = "Tue Sep 10 2013 22:44:07 GMT+0200 (ora legale Europa occidentale)"

dataString 将按预期工作(注意+ 符号)

【讨论】:

  • 这真的很奇怪,dataString是用new Data()创建的,为什么我失去了+号? :\ 我去看看这个
  • 好的,当我在 ajax 帖子中发送日期对象时,我需要对其进行编码 :)
猜你喜欢
  • 1970-01-01
  • 2019-07-12
  • 2016-10-28
  • 2021-05-14
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多