2

これが私のデータオブジェクトの私の文字列であると仮定します

{ date: "2013-03-04 12:00:00+0000" }

var parseDate = d3.time.format("%Y-%m-%d_%H:%M:%S+%Z");

data.forEach(function(d) {
            d.date = parseDate(d.date);
        });

それでも私のforEachメソッドでは、私の日付オブジェクトは毎回 null を返します。これが失敗する理由がわかりません。

同様に

{ date: "2013-03-04 00:00:00+0000" }

d3.time.format("%Y-%m-%d 00:00:00+00").parse

正常に動作します。ただし、ビジュアライゼーションではすべてが真夜中に発生すると想定しているため、日付はそれほど正確ではありません

最初のシナリオで文字列日付パーサーが失敗するのはなぜですか? クロムのコンソール/検査要素で日付パーサーをステップ実行しようとしましたが、役に立ちませんでした。

ここに d3.time.format ドキュメントがありますhttps://github.com/mbostock/d3/wiki/Time-Formatting

4

1 に答える 1

4

リンク先のドキュメントページから、さらに下に:

次のディレクティブは、解析でまだサポートされていません。

%j - 年間通算日。

%U - 年の週番号。

%w - 曜日番号。

%W - 年の週番号。

%Z - "-0700" などのタイム ゾーン オフセット。

%% - リテラルの「%」文字。

解析しようとしているタイム ゾーン オフセットはサポートされていません。2番目のものは、それを解析しようとしていないため機能します。

すべてが GMT で問題ない場合は、フォーマット仕様の を に置き換えてください+%Z+0000それ以外の場合は、日付を解析する別の方法を見つける必要があります。

于 2013-03-05T16:54:31.910 に答える