588创业论坛

 找回密码
 快速注册
搜索
查看: 796|回复: 0
打印 上一主题 下一主题

JS中相减或相加计算的时候结果出行NAN和的原因 Invalid Date

[复制链接]
匿名
跳转到指定楼层
1
匿名  发表于 2020-3-6 13:03:08 |倒序浏览
j计算结果出现NaN原因:

1、操作的两个数,类型不一致
2、有一个值为NaN,计算後为NaN
3、如果日期的计算,一班是日期显示格式问题导致

一、如果是1和2的原因,那可以用转换函数来解决:

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN

二、如果是3的原因,只要改变下日期格式就可以:

一般mysql存储的时间字段格式是" YYYY-MM-DD hh:mi:ss",即年月日之间是通过'-'分隔的。但是这种格式用在js时,在手机浏览器和IE浏览器上会运行会失败,在PC浏览器上却是OK的。

var EndTime= new Date("2019-02-11 10:04:38");
var NowTime = new Date();
var t = EndTime.getTime() - NowTime.getTime();

上面日期使用'-'分隔格式,在手机浏览器上和IE浏览器上会导致 EndTime的值为“Invalid Date”,就会造成下面计算的t值为NaN,只要把日期格式改成 var EndTime= new Date("2019/02/11 10:04:38"); 就各平台都OK了。

您需要登录后才可以回帖 登录 | 快速注册

Archiver|手机版|588创业网 ( 闽ICP备08003622号-6 )

GMT+8, 2024-11-23 09:30 , Processed in 0.170183 second(s), 25 queries .

Powered by bbs.588cy.com

© 2001-2012 Discuz! X2.5

回顶部