デビッド・日曜日:
これは奇妙ですが、私は完璧な説明があります確信しています。
私のチームと私は、最近使用した際に発見されたJavaのLOCALDATEをして戻って、デフォルトの文字列形式でのフロントエンドに送信する「YYYY-MM-DD」、Javascriptが自動的ので、ETゾーンに住んで、それを文字列はUTCだったと仮定して、日付を作成します。自動的-5時間を減算します。
迷惑な、しかし、我々はそれを得ます。
しかし、ときに我々はそうと、時間とともにそれを送り返す「YYYY-MM-DDTHH:MM:SS」、それは地元の日付としてそれを解析します。[OK]を、奇妙な...それは奇妙取得します。
今奇妙な部分、私たちのように日付の0パディングせずに文字列を送信する場合、「YYYY-MM-D」は、ローカルの日付としてそれを解析します。どうして?
ここでは例を示します。
new Date("2017-12-09")
// output: Fri Dec 08 2017 19:00:00 GMT-0500 (Eastern Standard Time)
new Date("2017-12-9")
// output: Sat Dec 09 2017 00:00:00 GMT-0500 (Eastern Standard Time)
どうしてこれなの???
ERRORNAME:
その答えは、あなたのブラウザの実装に依存しています。
参照してくださいhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Dateを
注: Dateコンストラクタで日付文字列の解析(メソッドとDate.parse、彼らは同じですが)強く、ブラウザの違いや矛盾が原因推奨されません。RFC 2822形式の文字列のサポートは唯一の慣例です。その日付のみの文字列(例えば「1970-01-01」)でISO 8601の形式が異なるのサポートUTC、現地ないとして扱われます。