//通过url获取参数 var getURLParams = function(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]); return null; }; /** * 获取开始日期 shaoshiyu * today 当前时间的最近多少天:值null表示获取的是当前时间的最近多少天;指定日期的最近多少天:today格式为yy/mm/dd * addDayCount 表示增加的事件,如最近一月,-1;最近一周为-7 * str 有值的,d(日),m(月),y(年) * 出参格式 YYMMDD * */ var startDate = function (today, addDayCount, str) { var dd; if (today) { dd = new Date(today); } else { dd = new Date(); } var y, m, d; switch (str) { case "d": dd.setDate(dd.getDate() + addDayCount);//获取AddDayCount天后的日期 break; case "m": dd.setMonth(dd.getMonth()+ addDayCount);//获取AddDayCount天后的日期 break; case "y": // return (dd.getFullYear() * 10000 + 101).toString(); dd.setFullYear(dd.getFullYear() + addDayCount); break; } var value = dd.getFullYear() * 10000 + (dd.getMonth() + 1) * 100 + dd.getDate(); return value.toString(); } /** * 获取结束日期,即当前时间 * 出参格式 YYMMDD **/ var endTime = function () { var now = new Date(); var value = now.getFullYear() * 10000 + (now.getMonth() + 1) * 100 + now.getDate(); return value.toString(); } /* * 获取指定日期的最近天数 * 调用规则 : * 第一个入参格式支持字符串:"2017/11/26"、"2017.10.27"、"20171027"、"2017-10-27" * 指定日期n天前日期:date_getPointDate("2017/11/26", -30) * 指定日期n天后日期:date_getPointDate("2017.10.27", 30) */ var date_getPointDate = function(currDate, num) { //num表示天数,接受正负数 // console.log("currDate", currDate); if (!num) {//做num简单验证 return currDate; } num = Math.floor(num); this.symbol = ''; //需要什么格式出参自己定义 - / // console.log("currDate", currDate); if(currDate.indexOf('-') > -1) //格式yy-mm-dd { currDate = currDate.replace(/-/g, '/'); } else if (currDate.indexOf('.') > -1) //格式yy.mm.dd { currDate = currDate.replace(/\./g, '/'); } else { currDate = currDate.substring(0, 4) + "/" + currDate.substring(4, 6) + "/" + currDate.substring(6, 8); } //到这一步前,currDate格式要为YY/MM/DD var myDate = new Date(currDate), lw = new Date(Number(myDate) + 1000 * 60 * 60 * 24 * num), //num天数 lastY = lw.getFullYear(), lastM = lw.getMonth() + 1, lastD = lw.getDate(), startdate = lastY + this.symbol + (lastM < 10 ? "0" + lastM : lastM) + this.symbol + (lastD < 10 ? "0" + lastD : lastD); // console.log("currDate", currDate, startdate); return startdate; } function NumberToString(value) { if (value<10) return '0'+value.toString(); return value.toString(); } function FormatDateString(value,format) { var year=parseInt(value/10000); var month=parseInt(value/100)%100; var day=value%100; switch(format) { case 'MM-DD': return NumberToString(month) + '-' + NumberToString(day); default: return year.toString() + '-' + NumberToString(month) + '-' + NumberToString(day); } } const tools = { getURLParams:getURLParams,//获取url参数 startDate:startDate,//获取开始日期 endTime:endTime,//获取结束日期,即当前时间 FormatDateString:FormatDateString, //时间格式转化 date_getPointDate:date_getPointDate,//获取指定日期的最近天数 } export default tools; //转换金钱类数据 export function formatBillion(num) { var result = ""; var strValue = num + ""; var negative = ""; var _decimal = ""; if (strValue.indexOf(".") > -1){ var temp = strValue.split('.'); strValue = temp[0]; _decimal = temp[1]; } if (strValue.indexOf("-") > -1) { negative = "-"; strValue = strValue.split('-')[1]; } if (strValue.length >= 11) { result = negative + Math.floor(parseInt(strValue) / 100000000) + "亿"; } else if (strValue.length >= 9 && strValue.length <= 10) { result = negative + (parseInt(strValue) / 100000000).toFixed(2) + "亿"; } else if (strValue.length >= 5 && strValue.length <= 8) { result = negative + Math.floor(parseInt(strValue) / 10000) + "万"; }else{ result = strValue; } return result; } //排序,-1从大到小 1从小到大 export function compare(property,type) { return function (a, b) { var value1 = a[property]; var value2 = b[property]; if(type == -1){ return value2 - value1; //从大到小 } if(type == 1){ return value1 - value2; //从小到大 } } } //密码加密 export function encode(mi) {    var str = mi + "";   var r = "";   for (var i = 0; i < str.length; i++)   {     var code = str.charCodeAt(i);     r += code; if(i != (str.length-1)){ r += ","; }   }   return r; } //密码解密 export function decode(mi) {   var str = mi + "";   var arr = str.split(",");   var r = "";   for (var i = 0; i < arr.length; i++)   {     var code = parseInt(arr[i]);     r += String.fromCharCode(code);   }   return r; } //设置cookie export function setCookie(cname, cvalue, exdays) { var exp = new Date(); exp.setTime(exp.getTime() + (exdays*24*60*60*1000)); document.cookie = cname + "="+ encodeURIComponent (cvalue) + ";expires=" + exp.toGMTString(); } //获取cookie export function getCookie(sName) { var aCookie = document.cookie.split("; "); for (var i=0; i < aCookie.length; i++) { var aCrumb = aCookie[i].split("="); if (sName == aCrumb[0]){ return decodeURIComponent(aCrumb[1]); } } return null; } //清除cookie export function clearCookie(name) { setCookie(name, "", -1); } export function GetSign (queryObj) { var sign = ''; if (queryObj != null) { var keyArry = Object.keys(queryObj); keyArry.sort(); for (let i = 0; i < keyArry.length; ++i) { var keyText = keyArry[i]; var keyValue = queryObj[keyText] == null ? '' : queryObj[keyText]; if (keyValue == true || keyValue == 'true') { keyValue = 'True'; } sign += (sign == '' ? `${keyText}=${keyValue}` : `&${keyText}=${keyValue}`); } sign += `&Key=${AccessKey}`; sign = md5(sign).toUpperCase(); } else { sign = `Key=${AccessKey}`; sign = md5(sign).toUpperCase(); } return sign; }