2012-11-24 4 views

답변

3

다음 Date.parse()는 (이 새로운 날짜 (문자열) 동등에)는 JS 구현에 걸쳐 일관성없는, 그래서 Minko Gechev에서 알 수 있듯이 아마 수동으로 다음 정확히 수행 일관성을 위해 먼저 날짜 문자열을 구문 분석해야합니다

array.sort(function (d1, d2) { 
    function parseDate(str) { 
    var parts = str.match(/(\d+)/g); 
    // assumes M/D/Y date format 
    return new Date(parts[2], parts[0]-1, parts[1]); // months are 0-based 
    } 
    return parseDate(d1) - parseDate(d2); 
}); 

제쳐두고, 나는 당신이 거의 항상 문자열보다는 Date 객체를 저장하는 것이 더 좋다고 주장 할 것입니다. 그런 다음 날짜 형식을 문자열로 지정하고 어쨌든 출력을 위해 필요할 때 날짜 형식을 지정하는 것이 좋습니다. 조작이 쉬우 며 코드가 명확 해집니다.

+0

동의합니다. 그러나 소스 날짜가 저장되지 않았습니다. – EBM

+0

jsFiddle 예제 (위 코드 사용) : https://jsfiddle.net/po3mvogk/ – crashwap

1

문자열을 구성 요소로 분할하고 구성 요소를 비교할 수도 있습니다.

array.sort(function(a,b){ 
    var a1= a.split('/'), b1=b.split('/'); 
    if(a1[2]==b1[2]){ 
    return (a1[0]==b1[0])? a1[1]-b1[1]: a1[0]-b1[0]; 
    } 
    return a1[2]-b1[2]; 
}