js 一些工具函数
1.js金钱转换类
这是一个远古时期的函数,拿来分享一下,它将输入的数字保留2位小数并补0
function formatAsMoney(mnt) {
mnt -= 0;
mnt = (Math.round(mnt * 100)) / 100;
return (mnt == Math.floor(mnt)) ? mnt + '.00' : ((mnt * 10 == Math
.floor(mnt * 10)) ? mnt + '0' : mnt);
}
console.log(formatAsMoney(10.7));
console.log(formatAsMoney(10.211));
console.log(formatAsMoney(10.999));
打印结果为:
2.js获取相差的天数
这个本来是计算bootstrap的datetimepicker输入框之间相差的天数,这里就直接赋值测试一下:
function formatAsMoney() { var d1 = $("#start_time").val(); d1="2019/02/03"; var d2 = $("#end_time").val(); d2="2019/03/01"; if(d1 =="" || d2==""){ bootbox.alert("起始时间不能为空"); return false; } var b1=new Date(Date.parse(d1)); console.log(b1); var b2=new Date(Date.parse(d2)); console.log(b2); var days = Math.floor((b2-b1)/(24*3600*1000)); console.log(days); } formatAsMoney();
打印结果:
注:Date.parse("2019/03/01")可以把字符串转换为时间戳。
3.利用ajax触发事件做遮罩层(等待框)
$(function () { /*ajax发送的时候显示 半透明的遮罩层*/ $(document).ajaxSend(function(e, xhr, options) { $('#overlay').show(); }); $(document).ajaxComplete(function(e, xhr, options) { $('#overlay').hide(); }); });
注:$('#overlay')是一个等待框。
4.获得上个月的现在时间
又是一个奇葩的需求,总之这个函数可以获得上个月的现在时间。。。:
function getPreMonth(date) { var arr = date.split('-'); var year = arr[0]; //获取当前日期的年份 var month = arr[1]; //获取当前日期的月份 var day = arr[2]; //获取当前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //获取当前日期中月的天数 var year2 = year; var month2 = parseInt(month) - 1; if (month2 == 0) { year2 = parseInt(year2) - 1; month2 = 12; } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = '0' + month2; } var t2 = year2 + '-' + month2 + '-' + day2; console.log(t2); return t2; } getPreMonth("2019-01-02");
打印结果:
5.设置cookies
function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) }