1

「MMM.ddHH:mm:ss.nnn」の形式で日付を表示しようとしています。IEで正しくレンダリングされておらず、かなりの時間を費やしていて、なぜこれを機能させることができないのか理解できません。

Date.UTCは、1970年1月1日以降のDateオブジェクトのミリ秒数を返すことを知っています。

var newDate = new Date(Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]])
newDate.toString("MMM. dd HH:mm:ss.")+row.timestamp.getMilliseconds();

動作します。

例:

var newDate = new Date(Date.UTC(1950, 10, 10, 10, 09, 09, 100));
row.timestamp_f = newDate.toString("MMM. dd HH:mm:ss."); // Output => Nov. 10 05:09:09.

しかし、私はこれをjquey.each関数から相互作用させているので、使用している日付文字列はISO 8601: "2013-03-12T15:14:10.483"です。だから、これは私が心に留めていることです。

var numMilisecond = Date.parse(row.timestamp);
var newDate = new Date(numMilisecond);
row.timestamp_f = newDate.toString("MMM. dd HH:mm:ss."); // Output => Dec. 31 19:00:00.

row.timestampはJSON応答からのものです

{"timestamp":"2013-03-12T15:14:10.483" ...}

コードが機能しないのはなぜですか?Date.parseは、1970年1月1日以降のミリ秒数を返す必要があります。次に、新しいDate objを作成し、最初のスニペットのコードと同じように文字列に変換します。私は何が間違っているのですか?

ありがとう。

4

1 に答える 1

0

Date.toString引数を受け入れるべきではありません。真の日付フォーマットソリューションが必要な場合は、プラグインを使用するか、独自のプラグインを作成する必要があります。

var shortmonths = ['Jan','Feb','Mar','Apr',]; // remaining months are left as an exercise for the reader
row.timestamp_f = shortmonths[newDate.getMonth()]
                  + ". "+newDate.getDate() + " "
                  + newDate.toLocaleTimeString() + ".";
于 2013-03-12T19:54:05.290 に答える