나는 다른 같은 형식의 날짜 정렬 할 필요가 같이 나는 시나리오를 가지고 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
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-yyyy
및 dd/mm/yyyy
, 심지어 혼합에서도 작동합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다