본문 바로가기

프로그래밍/JavaScript

[JavaScript] 오늘 날짜 (년, 월, 일) 및 날짜 비교 new Date() NaN

반응형


오늘 날짜 정보를 가져와보자



1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
    var date = new Date();
 
    var year = date.getFullYear(); //년도
    var month = date.getMonth()+1//월
    var day = date.getDate(); //일
 
    if ((day+"").length < 2) {       // 일이 한자리 수인 경우 앞에 0을 붙여주기 위해
        day = "0" + day;
    }
 
    var getToday = year+"-"+month+"-"+day; // 오늘 날짜 (2017-02-07)
</script>
cs


getMonth 함수는 0(1월)부터 11(12월)까지의 정수를 반환하기 때문에 +1해줘야한다.




  참고


new Date() 값 NaN 에러


1
2
3
4
5
6
<script>
    var sysDate = "<%=DateTime.Now.ToShortDateString() %>";
    //var intDate = new Date(sysDate); // IE8에서 NaN
    var intDate = new Date(sysDate.ReplaceAll("-","/"));
    intDate =  intDate.getFullYear() + "" + (intDate.getMonth() + 1+ "" + intDate.getDate();
</script>
cs


오늘 날짜를 new Date("<%=DateTime.Now.ToShortDateString() %>"); 이렇게 가져 왔을때

IE8 익스플로러 8 버전에서는 결과 값이 NaN으로 노출된다.

즉, yyyy-MM-dd 포맷에서 오류가 발생




eval 함수를 이용하여 날짜를 비교해보자


eval 함수

문자열로 입력된 수식을 계산한다.


예를들어, eval("1+2")는 3라는 정수를 리턴한다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
    var date = new Date();
 
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
 
    if ((day+"").length < 2) {
        day = "0" + day;
    }
 
    var getDate = year + month + day;
 
    if(eval(getDate) >= '20170207') {
        alert("2017-02-07 이후");
    }
</script>
 
cs




반응형