2016-08-31 21 views
0

"Mar, 2016"のような文字列が表示されています。 monthnumberにあります。私は奇妙な/エラーの結果を取得します。月の値が常に正しく印刷されない

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ヶ月ゼロベースされているインデックスの罰金になります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());

それを削除して、月は月2であるので、あなたは、

関連する問題