这几天工作涉及到一些 JS 的常见应用,在此总结一下,以备不时之需。

 

1. Js 操作float型数值加减问题(直接运算会涉及精度问题)


//该float乘以10的n次方(n为小数位数),即把该float放大为整型再进行加或减运算
Number.prototype.getB = function(){
var arr = this.toString().split('.');
return arr[1]? arr[1].length : 0;
}
Number.prototype.getP = function(to){
return Math.pow(10, Math.max(this.getB(), to.getB()));
}
Number.prototype.add = function(to){
var p = this.getP(to);
return (this * p + to * p) / p;
}
Number.prototype.sub = function(to){
var p = this.getP(to);
return (this * p - to * p) / p;
}


应用:

var a = 12.23; //float

var b = 58.62; //float

alert(a.add(b));

alert(b.sub(a));

利用 toFixed 方法来截取小数点后保留几位。

 

2.  获取两日期间隔天数


/**
* 计算两日期之间间隔天数
*
* @param string s 开始时间串
* @param string e 结束时间串
*/
function interval(startDate, endDate){
var d1 = new Date(startDate.replace(/-/g, "/"));
var d2 = new Date(endDate.replace(/-/g, "/"));

var time = d2.getTime() - d1.getTime();
return parseInt(time / (1000 * 60 * 60 * 24));
}


​​PHP 日期比较 获取天数 ​​