js常用方法 ¶
日期 ¶
获取时间 ¶
js
1let d1=new Date() //获取当前时间的Date对象
2
3let d2=new Date("2020-12-10 17:25:55") //获取指定是时间的Date对象
获取时间戳 ¶
js
1let t1=Date.now() //获取当前时间戳
2
3let t2=new Date().getTime() //通过日期对象获取时间戳
获取moment对象 ¶
js
1let now = moment() //获取当前时间moment对象,不传参或传入参数undefined时
2let now=moment(new Date())moment对象操作 ¶
js
1let now = moment()
2let old = moment("2019-12-31 14:12:14")
3
4// diff 获取两个moment对象所代表日期之间的差
5// moment().diff(moment对象,年/月/天,true/false) 第三个参数为是否保留小数
6now.diff(old, 'days',true)
运算 ¶
原因 ¶
js因为底层数据存储原因,计算浮点数时会发生精度丢失
例如
js
13+0.47 // 结果为:3.4699999999999998
20.1+0.2 // 0.30000000000000004
30.3===(0.1+0.2) // false
解决办法 ¶
解决办法一
引入第三方库,例如:Decimal.js 、bigbunber.js、big.js、math.js 等
解决办法二
利用toPrecision(),格式化到指定小数位(四舍五入),返回的是字符串
一般精度选12就能解决掉大部分0001和0009问题
js
1parseFloat((0.37+0.123).toPrecision(12))