2013-03-05 2 views
1

내 데이터가 내 forEach 방법에자바 스크립트 d3.js 날짜 문자열을 구문 분석 문제

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

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

{ date: "2013-03-04 12:00:00+0000" } 아직 오브젝트이 내 문자열 가정 내 데이트 객체 반환 때마다 널 (null). 나는 이것이 왜 실패하는지 이해하지 못합니다.

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

마찬가지로

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

잘 작동합니다. 그러나 시각은 자정에 모든 시각을 가정하기 때문에 정확하지 않습니다.

첫 번째 시나리오에서 내 문자열 날짜 구문 분석기가 실패하는 이유는 무엇입니까? 나는 콘솔의 날짜 파서를 통해 실행/크롬의 요소를 검사했지만 아무 소용이 없습니다. 여기

더 아래로, 당신이 링크를 문서 페이지에서 d3.time.format 문서 https://github.com/mbostock/d3/wiki/Time-Formatting

+0

[+ % Z]에 [+]가 필요하지 않을 수도 있습니다. – Andrew

+0

@Andrew이 작업은 d3.time.format ("% Y- % m- % d_ % H :"% Y- % m- % d % 구문 분석 – CQM

답변

4

있습니다

: 다음 지침은 아직 분석 지원되지 않습니다

% j - 일년.

% U - 주 연도 번호.

% w - 요일 번호.

% W - 주 연도 번호.

% Z - 시간대 오프셋 (예 : "-0700").

%% - 리터럴 "%"문자입니다.

구문 분석하려는 표준 시간대 오프셋은 지원되지 않습니다. 두 번째 구문은 구문 분석을 시도하지 않으므로 작동합니다.

모든 것이 GMT 상태라면 문제가 없으면 형식 지정에서 을 +0000으로 바꿉니다. 그렇지 않으면 날짜를 파싱하는 다른 방법을 찾아야합니다.

+0

d3.time.format ("% Y- % m- % d_ % H : % M : % S + 0000") 구문 분석 ' – CQM

+0

("% Y- % m- % d % H : % M : % S + 0000") dse.time.format을 처리했습니다. 구문 분석 덕분에 많은 시행 착오를 겪었습니다. 문서는 _이 공간에 필요하다는 것을 제안하지만 오도 된 것입니다 – CQM