1

IE で日付を表示しているときに問題に直面しています。以下は、UI に inStoreDate と firstMarkDownDate の日付を表示しようとしている JSON 構造です。FF と Chrome では正常に動作していますが、IE に移行する際に問題に直面しています。IE では NaN として表示されます。

"data":[
  {
    "Id": "123",
    "inDate": [
        2012,
        12,
        17
    ]
  }
]

以下の日付フォーマット関数を使用して、表示する前に日付をフォーマットしています。

formatDate: function(longDate) {
    var d = new Date(longDate);
    return ('0' + (d.getMonth()+1)).slice(-2) + '/'
            + ('0' + (d.getDate())).slice(-2) + '/'
            + d.getFullYear();
}

formatDate(data.inDate);
4

2 に答える 2

0

MSDN Date specificationによると、オブジェクトをパラメーターとして Date() 関数に渡す正規化された方法はありません。

次のように、年、月、日を関数に渡すようにコードを変更する必要があるでしょう。

self.inStoreDate = formatDateWithZero(data.inStoreDate[0], data.inStoreDate[1], data.inStoreDate[2]);

...または配列を取得するように機能を更新しますが、Date コンストラクター用に配列からそれらの値を抽出します。

formatDateWithZero: function(longValue) {
    var date = new Date(longValue[0], longValue[1], longValue[2]);
    return ('0' + (date.getMonth()+1)).slice(-2) + '/'
            + ('0' + (date.getDate())).slice(-2) + '/'
            + date.getFullYear();
}

self.inStoreDate = formatDateWithZero(data.inStoreDate);

JSFiddle の作業: http://jsfiddle.net/pt75S/2/

于 2013-09-24T15:27:21.047 に答える