2014-09-26 3 views
9

면책 조항 : 나는 무엇을하고 있는지 전혀 모르겠다. 진지하게, 나는 데이터를 사랑하고, 직접 해보는 것은 데이터베이스를 프로그래밍하고 사용하는 법을 배우고, 멋진 앱처럼 웹 앱을 만드는 훌륭한 방법이 될 것이라고 생각했다. 나는이 날 마지막 날에 대한 답을 찾고 있었고, 모든 예제를 통해 코드를 만들 수 없었다.날짜 정렬 d3.js로

여기는 전체 코드 및 데이터의 붙여 넣기 저장소입니다. . 내 데이터가 채워과는

내가 선이 그려 얻을 수있는 JSON는 CouchDB를 데이터베이스에서 오는 http://pastebin.com/7aW6wegd

d3.js의 GitHub의에있는 샘플 라인 차트,하지만 그들은 엉망입니다 :

enter image description here

나는이이 날짜 콘솔에서 그들은 순서가 나열되어 있기 때문에, 제대로 정렬되지 발생라고 생각합니다. 날짜를 올바르게 정렬하는 방법을 알 수 없습니다. d3.time.format을 사용하면 오류가 발생합니다 (샘플 선 차트에서 가져온 코드에서 실제로 볼 수 있습니다. 데이터를 사용하여 데이터를 구문 분석합니다. 데이터를 사용하면 오류가 발생 함). 날짜에 대한 타임 스탬프) 그리고 couchdb에서 날짜를 정렬하는 방법을 알 수없는 것 같습니다.

+3

처음에는 솔직하게 시도하는 것이 좋습니다. 날짜 객체를 정의하기 전에 날짜를 정렬하면됩니다. https://github.com/mbostock/d3/wiki/Arrays –

답변

11

forEachdate 속성을 채운 후에 데이터를 정렬하지 않는 이유는 무엇입니까? 여기에 객체의 배열의 분류기의 아주 기본적인 구현입니다 :

var data = [ 
     {date: new Date(2000)}, 
     {date: new Date(1000)} 
    ]; 

function sortByDateAscending(a, b) { 
    // Dates will be cast to numbers automagically: 
    return a.date - b.date; 
} 

data = data.sort(sortByDateAscending); 

Array.prototype.sort을위한 좋은 documentation있다.

+2

고맙습니다. 이것은 완벽하게 작동했습니다. 나는 실패한 몇 가지 정렬 함수를 작성/빌려려고했다. 이것은 한 번 내가 찾은 가장 단순한 것보다 2 줄 또는 3 줄 짧다. – Trel

+0

국제 표준이 yyyy/dd/mm 일 때 mm/dd/yyyy를 반환하는 이유를 모르겠습니다. –

+0

@Claudiu 어떤 이유로 OP는 'd3.time.format ("% x")으로 날짜의 서식을 지정하기로 결정했습니다. '(pastebin의 46 행 참조). 문서에 따르면 날짜 형식은 "% m/% d/% Y"입니다. https://github.com/mbostock/d3/wiki/Time-Formatting#format 원할 경우 다른 형식을 선택할 수 있습니다. – Oleg