我只是在进行日期比较,但是面对日期很奇怪。我的代码类似于下面的代码
var now = new Date();
var from = new Date(2013,12,18,7,41,25,0);
var untill = new Date(2013,12,18,8,42,25,0);
if(now <= untill && now >= from){
...
}else{
....
}
这种情况在适当的时候,例如2013/12/18 7:42:00不起作用。 我用console.log进一步调查它:
console.log(from);
console.log(now);
console.log(untill);
输出和以下一样奇怪:
Date {Sat Jan 18 2014 07:41:25 GMT+0330 (Iran Standard Time)}
Date {Wed Dec 18 2013 08:20:22 GMT+0330 (Iran Standard Time)}
Date {Sat Jan 18 2014 08:42:25 GMT+0330 (Iran Standard Time)}
正如你所看到的那样,即使进入2013/12/18,它仍然是2014年1月18日的起始和变量的日期
请帮我弄清楚为什么javascript会这样做。
答案 0 :(得分:2)
month参数使用从0开始的索引。
使用var from = new Date(2013,11,18,7,41,25,0);
12月。
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 1 :(得分:0)
在Javascript月份中有0个索引,因此1月为0,12月为11。
将您的代码更改为
var from = new Date(2013,11,18,7,41,25,0);
var untill = new Date(2013,11,18,8,42,25,0);
答案 2 :(得分:0)
您之所以这样,是因为Month
和Day of the week
这些基于0-based indexing
。
您可以在此处详细了解Date
。 Date in Javascript