前言:
帮客户做一个订单系统,需要一个日期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下只是支持“/”分隔符.