APIから日付オブジェクトを取得しています。DateオブジェクトはChromeでは有効ですがSafari、Firefox、IEでは無効です
「は2016年4月5日13:39:46.612が」ここAPIから返される形式です
Chromeはこれを解釈し、それを正しく表示するようだが、しかし、Firefoxの、サファリ、およびIEで、私はどちらかを取得しますnullまたは無効な日付。
クローム結果:
console.log(purchaseDate)
>> Tue Apr 05 2016 13:39:46 GMT-0500 (CDT)
角度ビューでこのHTML:{{$ scope.purchaseDate |日付: 'MMM dを、YH:ミリメートルA'}} 出力:2016年4月5日13:39(SafariとIEについても同様)
Firefoxの結果:
console.log(purchaseDate)
>> Invalid Date
このHTMLで角度表示:{{$ scope.purchaseDate |
私はmoment.jsを使用して日付をフォーマットしてみましたが、これは(類似の質問に対する回答として示唆されているように)ブラウザに送信していますが、その日付は 'MMM d、yh:mm a'結果ははるかに良いではありません:(SafariとIEについても同様)
console.log(moment(purchaseDate).format())
>> 2016-04-05T13:39:46-05:00
Firefoxの結果:
クローム結果
console.log(moment(purchaseDate).format())
>> Invalid Date
アイデア私は既にコード内のどこかで使用しているので、一貫性解析を行うためにmoment.jsを使用したいと思います。
私は同様の問題を持っていたし、私のために最善の解決策は、日付文字列解析するmomentjsライブラリを使用することだったと思う
最初の呼び出しで* moment.js *に書式を渡す必要があります。そうでない場合は、文字列を解析するときに推測するだけです。 – RobG
実際にAPIから直接文字列として渡される形式の場合は、APIに戻ってISO-8601のような賢明なものに変更してください。しかし、私の推測では、APIの結果を既に 'Date'オブジェクトに解析していて、' Date'の 'string'への暗黙の変換を実際に見ていると思います。あなたはAPIから出てくる正確な文字列ですか?生のHTTPを見てください。 –
APIの返品に影響を与えることはできますか?もしそうなら、最良の解決策は、この形式のデータを返さないことです。かなり狂っています。 – shabunc