以上がコメントです。
JavaScript ISO8601 日付文字列を手動で解析するには、それを部分に分割して日付コンストラクタに渡します。JavaScript の日付文字列は常に UTC (Z) である必要があることに注意してください。
function parseISOdateString(s) {
s = s.split(/\D/);
return new Date(Date.UTC(s[0], --s[1], s[2], s[3], s[4], s[5]))
}
必要に応じて、文字列と結果の日付オブジェクトを検証するために、上記にさまざまな機能を追加できます。
ES5 によると、無効な日付文字列Date.parse
(例: 2012-12-00) は を返す必要NaN
がありますが、一部のブラウザーは 2012-11-30 の日付オブジェクトを作成することに注意してください。上記は無効な文字列の日付オブジェクトを返すため、仕様との一貫性が必要な場合:
function parseISOdateString(s) {
s = s.split(/\D/);
var d = new Date(Date.UTC(s[0], --s[1], s[2], s[3], s[4], s[5]))
return (d.getUTCFullYear() == s[0] && d.getUTCDate() == s[2])? d : NaN;
}
NaN
「2012-12-00」のような無効な文字列に対して返されます