var SIGN_REGEXP = /([yMdhsm])(\1*)/g; var DEFAULT_PATTERN = 'yyyy-MM-dd'; function padding(s, len) { var len = len - (s + '').length; for (var i = 0; i < len; i++) { s = '0' + s; } return s; }; /** * @description 格式化金额 * @param number:要格式化的数字 * @param decimals:保留几位小数 默认0位 * @param decPoint:小数点符号 默认. * @param thousandsSep:千分位符号 默认为, */ export const formatMoney = (number, decimals = 0, decPoint = '.', thousandsSep = ',') => { number = (number + '').replace(/[^0-9+-Ee.]/g, '') let n = !isFinite(+number) ? 0 : +number let prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) let sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep let dec = (typeof decPoint === 'undefined') ? '.' : decPoint let s = '' let toFixedFix = function (n, prec) { let k = Math.pow(10, prec) return '' + Math.ceil(n * k) / k } s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.') let re = /(-?\d+)(\d{3})/ while (re.test(s[0])) { s[0] = s[0].replace(re, '$1' + sep + '$2') } if ((s[1] || '').length < prec) { s[1] = s[1] || '' s[1] += new Array(prec - s[1].length + 1).join('0') } return s.join(dec) } export default { getQueryStringByName: function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); var context = ""; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == "" || context == "undefined" ? "" : context; }, formatDate: { format: function (date, pattern) { pattern = pattern || DEFAULT_PATTERN; return pattern.replace(SIGN_REGEXP, function ($0) { switch ($0.charAt(0)) { case 'y': return padding(date.getFullYear(), $0.length); case 'M': return padding(date.getMonth() + 1, $0.length); case 'd': return padding(date.getDate(), $0.length); case 'w': return date.getDay() + 1; case 'h': return padding(date.getHours(), $0.length); case 'm': return padding(date.getMinutes(), $0.length); case 's': return padding(date.getSeconds(), $0.length); } }); }, parse: function (dateString, pattern) { var matchs1 = pattern.match(SIGN_REGEXP); var matchs2 = dateString.match(/(\d)+/g); if (matchs1.length == matchs2.length) { var _date = new Date(1970, 0, 1); for (var i = 0; i < matchs1.length; i++) { var _int = parseInt(matchs2[i]); var sign = matchs1[i]; switch (sign.charAt(0)) { case 'y': _date.setFullYear(_int); break; case 'M': _date.setMonth(_int - 1); break; case 'd': _date.setDate(_int); break; case 'h': _date.setHours(_int); break; case 'm': _date.setMinutes(_int); break; case 's': _date.setSeconds(_int); break; } } return _date; } return null; }, dateDiff: function(sDate1, sDate2) { var aDate, oDate1, oDate2, iDays; sDate1 = sDate1.split(" ")[0]; aDate = sDate1.split("-") oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); aDate = sDate2.split("-") oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); if((oDate1 - oDate2) < 0){ iDays = "已失效" } else { iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) + "天" //把相差的毫秒数转换为天数 } return iDays }, cdTime: function(t1, t2, tg) { var ms = Date.parse(t1) - Date.parse(t2); var minutes = 1000 * 60; var hours = minutes * 60; var days = hours * 24; var years = days * 365; //求出天数 var d = Math.floor(ms / days); //求出除开天数,剩余的毫秒数 ms %= days; var h = Math.floor(ms / hours); ms %= hours; var m = Math.floor(ms / minutes); ms %= minutes; var s = Math.floor(ms / 1000); //返回所需值并退出函数 switch(tg){ case 'd' : return d; case 'h' : return h; case 'm' : return m; case 's' : return s; } } } };