오름차순으로 날짜를 정렬하는 방법. 날짜는 dd / mm / yyyy (31/12/2015) 또는 (dd-MMM-yyyy) 형식과 유사합니다.

사용자 4408375

나는 다른 같은 형식의 날짜 정렬 할 필요가 같이 나는 시나리오를 가지고 dd/mm/yyyy (31/12/2015)mm/dd/yyyy (12/31/2015).

들어 mm/dd/yyyy (12/31/2015)내가 이것을 사용하고 sortedKey = sortedKey.sort(function(a,b) { return a - b;})있지만이 형식을 정렬 할 수있는 방법mm/dd/yyyy

Yeldar Kurmangaliyev

JavaScript는 dd/mm/yyyy형식의 날짜에서 작동하지 않습니다 .

mm/dd/yyyy형식에 날짜가 있다면 문자열을로 변환 Date한 다음 비교할 수 있습니다 .

var arr = ['01-01-2015', '03-03-2015', '07-30-2015', '12-30-2014']; // mm-dd-yyyy

arr.sort(function(a, b) {
  var aDate = new Date(a);
  var bDate = new Date(b);

  return (aDate < bDate ? -1 : 1);
});

document.write(arr.join("<br/>"));

이 문제를 해결하는 가장 좋은 방법은 날짜 형식을 변경하는 것입니다.

그러나 날짜 형식을 변경할 수없는 경우 정규 표현식을 사용하여 구문 분석과 같은 몇 가지 해킹을 사용할 수 있습니다 .

function parse_ddmmyyyy(str) // example: for str = '07-30-2015'
{
  var numbers = str.match(/\d+/g); // numbers will be [7,30,2015]
  return new Date(numbers[2], numbers[1]-1, numbers[0]); // new Date(2015, 6, 30)
}

// dd-mm-yyyy (dd/mm/yyyy)
var arr = ['01-01-2015', '03-03-2015', '30-07-2015', '30/12/2014', '18/11/2016', '03-11-2014', '02/01/2015']; 

arr.sort(function(a, b) {
  var aDate = parse_ddmmyyyy(a);
  var bDate = parse_ddmmyyyy(b);

  return (aDate < bDate ? -1 : 1);
});

document.write(arr.join("<br/>"));

이것은 dd-mm-yyyydd/mm/yyyy, 심지어 혼합에서도 작동합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관