2

日付と時刻を含むイベントのリストを返すJSONオブジェクトがあり、次のイベント時刻にカウンターを追加したいのですが、これにアプローチする方法がわかりませんか?

基本的に、私のJSONは次のようなものです。

[{"name": "BAKER-CROSSROADS", "country": "USA", "lon": "165.25", "yield": "21", "lat": "11.58", "depth": ".027", "date": "1946/07/24 21:35:00", "id": "1"}, {"name": "VENUS", "country": "USA", "lon": "-116.2", "yield": "10", "lat": "37.19", "depth": ".03", "date": "1958/02/22 01:00:00", "id": "10", "fill": "green"}, {"name": "HATCHIE", "country": "USA", "lon": "-116.03", "yield": "20", "lat": "37.058", "depth": ".061", "date": "1963/02/08 16:00:01", "id": "100", "fill": "green"}, {"name": "CLIMAX:Upshot-Knothole", "country": "USA", "lon": "-116.0183", "yield": "61", "lat": "37.0875", "depth": "-.41", "date": "1953/06/04 11:14:57", "id": "1000", "fill": "red"}, {"name": "BRAVO:Castle", "country": "USA", "lon": "165.274", "yield": "15000", "lat": "11.698", "depth": "0", "date": "1954/02/28 18:45:00", "id": "1001", "fill": "red"}, ....

したがって、各オブジェクトについて:

{"name": "BAKER-CROSSROADS"、 "country": "USA"、 "lon": "165.25"、 "yield": "21"、 "lat": "11.58"、 "depth": ".027 "、" date ":" 1946/07/24 21:35:00 "、" id ":" 1 "}

{"name": "VENUS"、 "country": "USA"、 "lon": "-116.2"、 "yield": "10"、 "lat": "37.19"、 "depth": ".03" 、"date": "1958/02/22 01:00:00"、 "id": "10"、 "fill": "green"}

..。

jsonファイルを読み取るコードは次のとおりです。

    this.loadNext = function () {
    d3.json("./data/detonations.json", function(datum) {
        for(var i = datum.length - 1; i >= 0; --i) {
            var o = datum[i];
            //console.log(o);
            message = {
                country: o.country
                ,date: o.date
                ,depth: o.depth
                ,lon: o.lon
                ,lat: o.lat
                ,type: o.type
                ,yield: o.yield
            };
            self.doSomething(message)
        }
    });
}

日付と時刻の差を計算したいので、この場合は「1958/02/2201:00:00」と「1946/07/2421:35:00」の差をメッセージ配列に渡します。 ?

4

1 に答える 1

2

ミリ秒単位でこの差を持たせるには、次を使用できます

var diff = (new Date(s2)).getTime() - (new Date(s1)).getTime();

これは、使用している形式がDateクラスで直接解析できるためです。

于 2012-08-24T13:08:38.003 に答える