なぜJSは、時間なしで、文字列、日付を前提としない0パディングし、ローカルでない場合はパッド入りの場合はUTCのですか?

デビッド・日曜日:

これは奇妙ですが、私は完璧な説明があります確信しています。

私のチームと私は、最近使用した際に発見された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、現地ないとして扱われます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=205828&siteId=1
おすすめ