2013-12-18 95 views
1

我只是在日期比較上工作,但面對日期奇怪的事情。我的代碼是類似於下面的代碼在javascript中約會的奇怪行爲

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)} 

正如你可以看到它的日期從和變量,直到爲2014年5月18日儘管進入2013/12/18

請幫我找出爲什麼JavaScript這樣做。

+0

[請閱讀文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date):*「月:表示月份的整數值,從0開始一月到十一月爲十二月。「* –

回答

0

在Javascript中的月份是0指數的,因此一月份爲0,十二月份爲11

更改您的代碼

var from = new Date(2013,11,18,7,41,25,0); 
var untill = new Date(2013,11,18,8,42,25,0); 
0

您收到此,因爲MonthDay of the week這些是基於0-based indexing

你可以在這裏閱讀更多關於Date的更多信息。 Date in Javascript

+0

月份的日期(這裏使用的是什麼)不是基於0的。正如預期的那樣,它的值是1到31。儘管如此,本週的日子爲0。 –

+0

@FelixKling OOps我的錯誤,這是一個打字錯誤,我正在考慮一週的一天,並寫下一天將編輯我的答案,謝謝。 – 2013-12-18 05:24:35