2013-09-01 13 views
5

なぜこのコードは明日の日付に戻りましたか?toISOString()は間違った日付を返します

私たちは8月31日であるため、2013年9月31日ではなく、2013年9月1日を返す必要があります。

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toisostring

function myFunction() { 
 
    var d = new Date(); 
 
    var x = document.getElementById("demo"); 
 
    x.innerHTML = d.toISOString(); 
 
}
<p id="demo">Click the button to display the date and time as a string, using the ISO 
 
    standard.</p> 
 
<button onclick="myFunction()">Try it</button>

+5

それはだからUTC – soulcheck

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString – Nayuki

+1

私はMYジュールではなく、UTCの1を取ることができますどのように? – Francois

答えて

3

それはUTCであります。

ローカルタイムゾーンを取得したい場合は、自分で日付をフォーマットしてください( getMonth()などを使用)。日付をフォーマットするdate.jsのようなライブラリを使用してください。それはかなり簡単ですdate.jsで

(new Date()).format('yyyy-MM-dd') 

編集

@MattJohnsonがdate.jsを指摘したようには放棄されているが、あなたはmoment.jsのような代替手段を使用することができます。

+0

私はどうですか? – Francois

+0

@Francoisを使用してgetYear()などを使用しますが、他の質問で見つけた解決策が優れています。 date.jsを使用する方がより良い方法です。 – soulcheck

+3

date.jsではなく[moment.js](http://momentjs.com)を使用してください。 [それは放棄されました](http://stackoverflow.com/tags/datejs/info)。 –

関連する問題