2013-03-05 33 views
1

認爲這是我的字符串在我的數據,我forEach方法對象的JavaScript d3.js日期字符串解析問題

{ 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); 
     }); 

的是,我的約會對象返回null每次。我不明白爲什麼這會失敗。

同樣

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

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

工作正常。但是日期並不準確,因爲它假定在我的可視化中午夜發生的所有事情都會發生。

爲什麼我的字符串日期解析器無法使用我的第一個場景?我嘗試在chrome中的console/inspect元素中逐句瀏覽日期解析器,但無濟於事。

這裏有d3.time.format文件https://github.com/mbostock/d3/wiki/Time-Formatting

+0

您可能不需要[+%Z]中的[+]。嘗試[「%Y-%m-%d_%H:%M:%S%Z」] – Andrew 2013-03-05 16:55:14

+0

@Andrew這也沒有起作用。d3.time.format(「%Y-%m-%d_%H: %M:%S%Z「)。parse' – CQM 2013-03-05 17:22:07

回答

4

從文檔頁面,你鏈接到,進一步下跌:

以下指令尚不支持解析:

%j - 一年中的某一天。

%U - 一年的週數。

%w - 工作日號碼。

%W - 一年的週數。

%Z - 時區偏移量,例如「-0700」。

%% - 文字「%」字符。

您試圖解析的時區偏移量不受支持。第二個工程,因爲你不想解析。

如果您在格林威治標準時間內處理所有事情都很好,只需在您的格式規格中用+0000替換+%Z即可。否則,你將不得不尋找另一種解析日期的方式。

+0

this does not work'd3.time.format(」%Y-%m-%d_%H:%M:%S + 0000「)。parse' – CQM 2013-03-05 17:21:46

+0

this工作d3.time.format(「%Y-%m-%d%H:%M:%S + 0000」)解析謝謝,花了很多試驗和錯誤。文件表明_需要一個空間,但這是誤導 – CQM 2013-03-05 17:25:36