2017-09-11 5 views
-2

getMonth()javascriptメソッドは、日付の月を返し、値は1月の場合は(0-11)0、12月の場合は11です。getMonth()メソッドの問題Javascript

今日はを返す必要があり、getMonth( "2015年3月1日"(2015年3月の最初の日))であったが、代わりに、それは返します。どうしてこれなの?どうすればこの問題を解決できますか?

ヘルプ!

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h2>JavaScript Date Example</h2> 
 

 
<p id="demo"></p> 
 

 
<script> 
 
var x = new Date("2015-03-01"); 
 
document.getElementById("demo").innerHTML = x.getMonth(); 
 

 
</script> 
 

 
</body> 
 
</html>

それは、この示したとき、私は、 "ファイル名を指定して実行コードスニペット":常に正確な取得するためにゼロbase.Soで結果を返す日付の

example of result

+0

これを見ると、あなたの例では2を返し、コンソールでこれを行うときにも 'var x = new Date(" 2015-03-01 "); x.getMonth() '問題は何ですか? – Nope

+0

サンプルコードスニペットでも "2"が出力されます。 – Tomalak

+0

これは面白いです、私はコードスニペットを実行すると私のために1を返します。 – toreohm

答えて

0

getMonth()メソッドをあなたは常に以下のような.getMonth()+ 1を使うべきです。

<script> 
var x = new Date("2015-03-01"); 
document.getElementById("demo").innerHTML = x.getMonth()+1; 

</script> 

これで、目的の結果がペイントされます。

+0

ありがとうございますが、私はすでにそれを知っています。それは問題ではありません。私は自分の質問を編集し、スクリーンショットを追加して私の問題を明らかにした。私のサンプルコードスニペットを実行すると "2"が出力されます。しかし、同じコードスニペットを実行すると "1"が出力されます。編集した質問で「結果の例」をクリックすると、スクリーンショットが表示されます。 – toreohm

+0

@ toreohm-これは重複していますが、なぜDate.parseが間違った結果を出すのですか?*](https://stackoverflow.com/questions/2587345/why-does-date-parse-give-incorrect-results) )日付文字列はUTCとして解析されるので、グリニッジの西側の場合は、2015年2月28日に* getMonth *が1を返します。* getUTCMonth *を返すと、2が返されます。 – RobG

+0

@RobG getUTCMonthは機能しました!ありがとう!あなたが私に解決策を与えてくれたので、どうすればこの問題を「閉じる」ことができますか(質問)? – toreohm