123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- 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;
- }
- }
- }
- };
|