//selector标签id("#idName")或class(".className")//number显示的数字letnumAnimate=function(selector, number){let numLength = number.length;let startNum =1;for(let i =0; i < numLength; i++){
startNum +="0"}try{$(selector).prop('number', startNum)//定义动画数字的开始数据.animateNumber({number:parseInt(number),easing:"easeInQuad",numberStep: $.animateNumber.numberStepFactories.separator(',')},1000)}catch(d){
console.log(d)}}numAnimate(".main","789456123")
3.格式化数字,显示千分符
//方法一lettoThousands=function(num){var num =(num ||0).toString(), result ='';while(num.length >3){
result =','+ num.slice(-3)+ result;
num = num.slice(0, num.length -3);}if(num){ result = num + result;}return result;}
console.log(toThousands(789456123))//789,456,123//方法二letchangeNum=function(data){
data = data *1var thisData = data.toLocaleString();return thisData
}
console.log(changeNum(789456123))//789,456,123
4.格式化数字 万,亿(保留两位小数)
letformatNumber=function(num){var num =(num ||0), result ='';if(num >100000000){
result =(num /100000000).toFixed(2)+'亿';}elseif(num >10000){
result =(num /10000).toFixed(2)+'万';}return result;}
console.log(formatNumber(789456123))//7.89亿
(function(d){varq=function(b){return b.split("").reverse().join("")}, m ={numberStep:function(b, a){var e = Math.floor(b);d(a.elem).text(e)}},h=function(b){var a = b.elem; a.nodeType && a.parentNode &&(a = a._animateNumberSetter, a ||(a = m.numberStep),a(b.now, b))}; d.Tween && d.Tween.propHooks ? d.Tween.propHooks.number ={set: h }: d.fx.step.number = h; d.animateNumber ={numberStepFactories:{append:function(b){returnfunction(a, e){var g = Math.floor(a);d(e.elem).prop("number", a).text(g + b)}},separator:function(b, a, e){
b = b ||" ";
a = a ||3; e = e ||"";returnfunction(g, k){var c = Math.floor(g).toString(), t =d(k.elem);if(c.length > a){for(var f = c, l = a, m = f.split("").reverse(), c =[], n, r, p, s =0, h = Math.ceil(f.length / l); s < h; s++){ n ="";for(p =0; p < l; p++){ r = s * l + p;if(r === f.length)break; n += m[r]} c.push(n)} f = c.length -1; l =q(c[f]); c[f]=q(parseInt(l,10).toString()); c = c.join(b); c =q(c)} t.prop("number", g).text(c + e)}}}}; d.fn.animateNumber=function(){for(var b = arguments[0], a = d.extend({}, m, b), e =d(this), g =[a], k =1, c = arguments.length; k < c; k++)g.push(arguments[k]);if(b.numberStep){var h =this.each(function(){this._animateNumberSetter = b.numberStep }), f = a.complete; a.complete=function(){ h.each(function(){deletethis._animateNumberSetter }); f &&f.apply(this, arguments)}}return e.animate.apply(e, g)}})(jQuery);
5.返回当前或n天前/n天后的日期
letgetDate=function(n,char){if(n ==0||!n){
n =0}else{
n = n
}if(char){
char = char
}else{
char ="-"}let d =newDate();let year = d.getFullYear();let mon = d.getMonth()+1;let day = d.getDate();if(day <= n){if(mon >1){
mon = mon -1;}else{
year = year -1;
mon =12;}}
d.setDate(d.getDate()+ n);
year = d.getFullYear();
mon = d.getMonth()+1;
day = d.getDate();
s = year + char +(mon <10?('0'+ mon): mon)+ char +(day <10?('0'+ day): day);return s;}
console.log(getDate(-1,"/"))//2022/08/08
console.log(getDate(0))//2022-08-09
console.log(getDate(1))//2022-08-10
6.获取当前 完整时间(年-月-日 时:分:秒)
varnowDateTime=function(){let time =newDate();let year = time.getFullYear()let months = time.getMonth()+1;let dates = time.getDate();let day = time.getDay();//星期let hs = time.getHours();let ms = time.getMinutes();let ss = time.getSeconds();letmonth=function(){if(months >=10){return months
}else{return'0'+ months
}}letdate=function(){if(dates >=10){return dates
}else{return'0'+ dates
}}leth=function(){if(hs >=10){return hs
}else{return'0'+ hs
}}letm=function(){if(ms >=10){return ms
}else{return'0'+ ms
}}lets=function(){if(ss >=10){return ss
}else{return'0'+ ss
}}return year +"-"+month()+"-"+date()+" "+h()+":"+m()+":"+s();//2022-08-09 15:40:42}
letdiffMonth=function(n){var dt =newDate();
dt.setMonth(dt.getMonth()+Number(n));var chinaStandard = dt
var date =newDate(chinaStandard);var y = date.getFullYear();var m = date.getMonth()+1;
m = m <10?('0'+ m): m;var d = date.getDate();
d = d <10?('0'+ d): d;var h = date.getHours();var minute = date.getMinutes();
minute = minute <10?('0'+ minute): minute;let time = y +'-'+ m +'-'+ d;return time;}
console.log(diffMonth(-6))
10.获取本周周一的日期
functiongetWeekStartDate(){var now =newDate();var nowDayOfWeek =(now.getDay()==0)?7: now.getDay()-1;
now.setDate(now.getDate()- nowDayOfWeek);var chinaStandard = now
var date =newDate(chinaStandard);var y = date.getFullYear();var m = date.getMonth()+1;
m = m <10?('0'+ m): m;var d = date.getDate();
d = d <10?('0'+ d): d;var h = date.getHours();var minute = date.getMinutes();
minute = minute <10?('0'+ minute): minute;let time = y +'-'+ m +'-'+ d;return time;}
console.log(getWeekStartDate())
11.获取前多少天的日期放到数组中
letbeforeDataList=function(num){var today =newDate();var dateArr =[]for(var i =0; i < num; i++){var newDate =newDate(today.getTime()- i *1000*60*60*24)var year = newDate.getFullYear()var month =(parseInt(newDate.getMonth())+1)>9?(parseInt(newDate.getMonth())+1):"0"+(parseInt(newDate.getMonth())+1)var day =(newDate.getDate())>9? newDate.getDate():"0"+ newDate.getDate()var fullDate =`${year}-${month}-${day}`
dateArr.push(fullDate)}return dateArr.reverse()}
console.log(beforeDataList(14))
12.获取两个日期间隔多少小时/天
letgetDaysBetween=function(startDate, enDate){const sDate = Date.parse(startDate)const eDate = Date.parse(enDate)if(sDate > eDate){return0}// 这个判断可以根据需求来确定是否需要加上if(sDate === eDate){return1*8}const days =(eDate - sDate)/(1*24*60*60*1000)return days *8}
console.log(getDaysBetween("2023-05-21","2023-05-25"))
13.数组对象去重
let datas =[{"alarm_cnt":2,"statistic_month":"2023-03","event_type_name":"过压报警"},{"alarm_cnt":1,"statistic_month":"2023-03","event_type_name":"欠压报警"}]letunique=(arr,judgmentName)=>{const res =newMap();return arr.filter((arr)=>!res.has(arr.judgmentName)&& res.set(arr.judgmentName,1));}
console.log(unique(datas,"statistic_month"),"12312313")