2016-08-31 95 views
0

我得到一個字符串,如"Mar, 2016"。我想在number找到month。我得到奇怪/錯誤的結果。月份值總是打印錯誤

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", 
       "Aug", "Sept", "Oct", "Nov", "Dec"]; 

new Date(str.split(", ")[1], months.indexOf(str.split(", ")[0]) + 1, new Date().getDate()); 

爲什麼上面的代碼打印我...的April代替March

Fri Apr 01 2016 00:00:00 
+2

的JavaScript月索引,所以三月是一個月2而4月是第3個月 – dave

+1

因爲你的數組索引以'[0]'開頭,而不是'[1]' –

回答

2

months.indexOf(str.split(", ")[0]) + 1不正確。幾個月是0索引。將其保留爲months.indexOf(str.split(", ")[0])

1

因爲要添加1〜它

new Date(str.split(", ")[1], months.indexOf(str.split(", ")[0]) + 1, new Date().getDate()); 

刪除

new Date(str.split(", ")[1], months.indexOf(str.split(", ")[0]), new Date().getDate());

,你將被罰款

都是從零開始