js计算在pc和安卓是正常的, 但在ios下缺报NaN

changerzhuo 2017-02-13 04:51:11
h5页面, 被嵌套在安卓和ios里。如下js代码, 函数传递一个参数days(天数), 获取不同的利率。 在pc和安卓下该方法都能正常返回利率, 但是在ios中一直返回最大的利率, 弹出后提示NaN;求大神看下!
function getRate(days){
var localDays = Math.abs(parseInt(days)-0);
// 这里是弹出层, 提示NaN
layerUtils.iAlert("localdays="+localDays,-1);
if(localDays <= 180){
return rateMap.rate180; //"8.15%";
}else if(localDays >= 181 && localDays <= 360){
return rateMap.rate360; //"8.20%";
}else if(localDays >=361 && localDays <= 720){
return rateMap.rate720; //"8.50%";
}else{
return rateMap.rate1080; //"8.80%";
}
}
...全文
326 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
changerzhuo 2017-02-15
  • 打赏
  • 举报
回复
感谢各位的帮忙, 问题已经解决了。 测试发现, 问题出在计算时间差的方法中。 // 原方法, 这种方法在pc和Android中都能正常计算 function DateDiff1(sDate1, sDate2){ var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-") oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式 alert(oDate1); // 在ios中这里报错提示invaliddate aDate = sDate2.split("-") oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒数转换为天数 return iDays } // 为了解决问题, 我换了一种计算时间差的方式, function DateDiff(sDate1, sDate2){ var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-") oDate1 = new Date(parseInt(aDate[0]), parseInt(aDate[1])-1, parseInt(aDate[2])); //创建新的日期对象 aDate = sDate2.split("-") oDate2 = new Date(parseInt(aDate[0]), parseInt(aDate[1])-1, parseInt(aDate[2])) ; iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒数转换为天数 return iDays }
文修 2017-02-13
  • 打赏
  • 举报
回复
1楼的解决方法完全没有用,parseInt(string, radix)这个函数第二个参数默认为10,就此楼主的问题应该是其他方面的,建议楼主看看整体的代码
天际的海浪 2017-02-13
  • 打赏
  • 举报
回复
var localDays = Math.abs(parseInt(days,10)-0);

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧