javascript 关于new Date()返回NaN

javascript 关于new Date()返回NaN,第1张

new Date("2011-01-01 01:01:00");// 这里出错
数字方式,不是字符方式
new Date(2011,1,1,1,1,1)
/字符转日期/StringToDate=function(DateStr){if(typeof DateStr=="undefined")return new Date();if(typeof DateStr=="date")return DateStr;var converted = Dateparse(DateStr);var myDate = new Date(converted);if(isNaN(myDate)){DateStr=DateStrreplace(/:/g,"-");DateStr=DateStrreplace(" ","-");DateStr=DateStrreplace("","-");var arys= DateStrsplit('-');switch(aryslength){case 7 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5],arys[6]);break;case 6 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5]);break;default: myDate = new Date(arys[0],--arys[1],arys[2]);break;};};return myDate;}
用这个转一下吧

<!DOCTYPE html>
<html>
<body>
<p>点击按钮计算 x</p>
<button onclick="myFunction()">点击这里</button>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
function myFunction()
{
y=5;
z=2;
x=z-y;
w=z+y;
documentgetElementById("demo1")innerHTML=x;
documentgetElementById("demo2")innerHTML=w;
}
</script>
</body>
</html>
           


经过测试发现参数类型的问题
var a=1368584724255;
new Date(a);//正确
var b='1368584724255';
new Date(b);//Invalid Date
b=parseInt(b,10);//转为整形
new Date(b);//正确

count = setday - today;试一下改成
count = parseFloat(setday) - parseFloat(today);
如果还有问题,可以试一下,在count = setday - today;加上一句alert(setday+";"+today);定位一下是不是这两个变量出了问题

var floats = "54212541212";//也可以是从input获取的值
alert(!isNaN(floats));//true
请注意,isNaN在数字为非数值型(字母或者符号)时为true;
有可能是你输入的数字是全角的〔.〕,这样可能会得不到正确结果的。
你可以顺便参考一下相关文档。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13379957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存