首页 > 代码库 > JS下计算当前日期(当天)后N天出现NAN或者undefined的情况

JS下计算当前日期(当天)后N天出现NAN或者undefined的情况

前言:

  帮客户做一个订单系统,需要一个日期1,一个日期2,默认情况下日期1为当天,日期2为明天,只是当时有些疑惑的是日期2偶尔会出现NAN的情况,今天在segmentfault.com看到了同样的问题,于是我觉得有必要再重温一下当时的问题。好好做一下到底是为什么?

<!--date() NAN start-->

以下代码有问题,不建议直接使用,只是临时版本,后续再修改

 

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>date NaN undefined</title></head><body>    <div id="today"></div>    <div id="nextDay"></div>    <script>    var month = {        "Jan":"01",        "Feb":"02",        "Mar":"03",        "Apr":"04",        "May":"05",        "Jun":"06",        "Jul":"07",        "Aug":"08",        "Sep":"09",        "Oct":"10",        "Nov":"11",        "Dec":"12"    };    function getDate(e) {        var d,theDate,array;        if(e.time) {            var array = e.time.split(e.symbol);             d = new Date(array[0]+e.symbol+array[1]+e.symbol+(parseInt(array[2])+e.n));//这里有一个严重的问题(这段代码不能直接使用)        }else {            d = new Date();        }        array = d.toDateString().split(" ");        return array[3]+e.symbol+month[array[1]]+e.symbol+array[2];    }    today = getDate({"symbol":"/"});    document.getElementById("today").innerHTML = today;    document.getElementById("nextDay").innerHTML = getDate({"symbol":"/","time":today,"n":1});    </script></body></html>

 

原因:主要是由于IE下只是支持“/”分隔符.