출처 : http://stackoverflow.com/questions/11020658/javascript-json-date-parse-in-ie7-ie8-returns-nan


2014/01/06 - [프로그램 자료/Java Script] - Javascript Date Time Now 현재날짜 현재시간


아래 주석 처리 부분과 같이 Date.parse는 IE7/IE8 에서 NaN을 반환하게 된다.

이때 아래 펑션 부분을 함수에 같이 붙여넣어주고, 

사용은 var dateStr = $.date(dateString); 과 같이 사용해주면 된다.


 

 

$.datetime = function (dateObject) {

    //var d = new Date(Date.parse(dateObject));

    var d = Date.fromISO(dateObject);

    var day = d.getDate();

    var month = d.getMonth() + 1;

    var year = d.getFullYear();

    var hh = d.getHours();

    var mm = d.getMinutes();

    var ss = d.getSeconds();

    if (day < 10) {

        day = "0" + day;

    }

    if (month < 10) {

        month = "0" + month;

    }

    if (hh < 10) {

        hh = "0" + hh;

    }

    if (mm < 10) {

        mm = "0" + mm;

    }

    if (ss < 10) {

        ss = "0" + ss;

    }

  

    var datetime = year + "-" + month + "-" + day + " " + hh + ":" + mm;

 

    return datetime;

 

}

  

$.date = function (dateObject) {

 

    //var d = new Date(Date.parse(dateObject));

    var d = Date.fromISO(dateObject);

    var day = d.getDate();

    var month = d.getMonth() + 1;

    var year = d.getFullYear();

    if (day < 10) {

        day = "0" + day;

    }

    if (month < 10) {

        month = "0" + month;

    }

    var date = year + "-" + month + "-" + day;

 

    return date;

};

 

(function () {

    var D = new Date('2011-06-02T09:34:29+02:00');

    if (!D || +D !== 1307000069000) {

        Date.fromISO = function (s) {

            var day, tz,

            rx = /^(\d{4}\-\d\d\-\d\d([tT ][\d:\.]*)?)([zZ]|([+\-])(\d\d):(\d\d))?$/,

            p = rx.exec(s) || [];

            if (p[1]) {

                day = p[1].split(/\D/);

                for (var i = 0, L = day.length; i < L; i++) {

                    day[i] = parseInt(day[i], 10) || 0;

                };

                day[1] -= 1;

                day = new Date(Date.UTC.apply(Date, day));

                if (!day.getDate()) return NaN;

                if (p[5]) {

                    tz = (parseInt(p[5], 10) * 60);

                    if (p[6]) tz += parseInt(p[6], 10);

                    if (p[4] == '+') tz *= -1;

                    if (tz) day.setUTCMinutes(day.getUTCMinutes() + tz);

                }

                return day;

            }

            return NaN;

        }

    }

    else {

        Date.fromISO = function (s) {

            return new Date(s);

        }

    }

})()




 
Posted by motolies
,