오늘 버그가 발생했습니다. 1년 동안 진행한 프로젝트에서 갑자기 날짜 비교에 오류가 발생했습니다. 결국 그 이유는 문자열 날짜를 직접 비교했기 때문인 것으로 밝혀졌습니다.
디버깅 결과로 바로 가보겠습니다.
많은 사람들이 js 문자열 날짜를 직접 비교할 수 있어 더 똑똑하다고 말합니다
alert(" 2016-10 -01" > "2016-10-02");//false
//js를 시간 형식으로 비교하든, 문자열 형식으로 비교하든 상관없이 반환값은 false입니다
, 비교가 가능하도록
그러나 문자열 날짜가 불규칙한 경우, 예를 들면 다음과 같습니다.
alert("2016-10-4" > ; "2016-10- 30");//true
//여기서 js는 문자열 비교로 처리하므로 직접 비교할 수 없으며 날짜 형식으로 변환해야 합니다
var date1 = new Date(" 2016-10-4");
var date2 = new Date("2016-10-10");
alert(date1> date2);//false
yy/mm/dd 형식의 문자열 날짜도 동일합니다