
前言:
帮客户做一个订单系统,需要一个日期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":"",
"Feb":"",
"Mar":"",
"Apr":"",
"May":"",
"Jun":"",
"Jul":"",
"Aug":"",
"Sep":"",
"Oct":"",
"Nov":"",
"Dec":""
};
function getDate(e) {
var d,theDate,array;
if(e.time) {
var array = e.time.split(e.symbol);
d = new Date(array[]+e.symbol+array[]+e.symbol+(parseInt(array[])+e.n));//这里有一个严重的问题(这段代码不能直接使用)
}else {
d = new Date();
}
array = d.toDateString().split(" ");
return array[]+e.symbol+month[array[]]+e.symbol+array[];
}
today = getDate({"symbol":"/"});
document.getElementById("today").innerHTML = today;
document.getElementById("nextDay").innerHTML = getDate({"symbol":"/","time":today,"n":1});
</script>
</body>
</html>
原因:主要是由于IE下只是支持“/”分隔符.