2017-05-08 19 views
-2

これはjavaScriptコードです。新しいDate()は無効な値を返します。 新しい日付()に渡す前に日付形式を変更する必要がありますか?javascript new Date()は無効な値を返します

new Date("25-Feb-17"); 
+0

クロームの私のために働く、私はいつも新しい日付(年、月、日、時、分、秒、ミリ秒)のような日付オブジェクトを作成する方が安全だと私は知っているので、それは – George

+1

期待? – tire0011

+0

そうではありません。ちょうど試してみましたが、ここでうまく動作しています:https://jsfiddle.net/dtppbuw4/ – binariedMe

答えて

0

そのので、私は次のように使用すると、標準のDateオブジェクトの作成を使用することをお勧めは、Firefoxに取り組んChromeでテストし、うまく働いていない:

new Date(year, month, day, hours, minutes, seconds, milliseconds) 
+0

日付オブジェクト – charlietfl

+0

を使用してこれを行う他の有効な方法がたくさんあります。そのため、私が使用する方法を提案しています。 –

2

On MDN、あなたがこの特定について以下を読むことができますDateコンストラクタ:

注: Dateコンストラクタと日付文字列の解析(メソッドとDate.parse、それらは同等です)は、ブラウザの違いや不一致のために強く推奨されません。 RFC 2822形式の文字列のサポートは、慣例によるものです。 ISO 8601フォーマットのサポートは、日付のみの文字列(例: "1970-01-01")がローカルではなくUTCとして扱われる点で異なります。

あなたはコンストラクタはどちらか、すべてのブラウザ間で正しく動作するその他の変異体のいずれかを使用します(また、リンクMDNのページで説明)、または少なくともISO8601 date representationに準拠するためにあなたの日付文字列を再フォーマットします。後者のオプションは100%保証されているわけではありませんが、JavaScriptは日付を文字列として表すためにわずかに簡略化された規約を使用しているためです。あなたは失敗するコーナーケースを見つけるかもしれません。

また、引用符に記載されているとおり、注意点があります。 "2017-02-25"などの簡略化された日付形式を使用すると、UTCとして扱われますが、内部的にローカルタイムゾーンに変換されます。あなたが西半球にいると仮定すると、最終結果は2月24日になるでしょう。

関連する問題