获取随机字符串值
randomString(len) {
len = len || 32;
/****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxLen = $chars.length;
var str = '';
for (var i = 0; i < len; i++) {
str += $chars.charAt(Math.floor(Math.random() * maxLen));
}
return str;
},
时间戳转换各种时间格式
timestampToTime(sj, type = 1, outType) {
if (sj.toString().length === 10) {
sj = sj * 1000
}
var today = new Date();
var now = new Date(sj);
var year = now.getFullYear();
var toYear = today.getFullYear();
var month = now.getMonth() + 1;
month = month < 10 ? `0${month}` : month;
var toMonth = today.getMonth() + 1;
var date = now.getDate();
date = date < 10 ? `0${date}` : date;
var toDate = today.getDate();
var hour = now.getHours();
hour = hour < 10 ? `0${hour}` : hour;
var minute = now.getMinutes();
minute = minute < 10 ? `0${minute}` : minute;
let second = now.getSeconds();
second = second < 10 ? `0${second}` : second;
var time;
switch (type) {
case 1: //年月日时分秒
time = year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
break;
case 2: //年月日
time = year + '-' + month + '-' + date + ' ';
break;
case 3: //月日时分
time = month + '-' + date + ' ' + hour + ':' + minute + ' ';
break;
case 4: //时分
time = hour + ':' + minute + ' ';
break;
case 5: //年月日
time = year + '年' + month + '月' + date + '日';
break;
case 6: //年月日
time = year == toYear && month == toMonth && date == toDate ? `${hour}:${minute}` :
`${year}年${month}年${date}日 ${hour}:${minute}`;
break;
case 7: //年月日
time = month + '月' + date + '日 ' + hour + ':' + minute;
break;
case 8: //月日
time = month + '.' + date + ' ';
break;
case 9:
time = year + '.' + month + '.' + date;
break;
case 10: //年月
time = year + '年' + month + '月';
break;
case 11: //年月
time = year + '/' + month + '/' + date;
break;
case 12: //年 月
time = year + '-' + month;
break;
case 13: //年月日
time = year + '年' + month + '月' + date + '日 ' + hour + ':' + minute;
break;
}
if (!outType) {
return time
}
//时间转化为几天前,几小时前,几分钟前
var minutes = 1000 * 60;
var hours = minutes * 60;
var day = hours * 24;
var halfamonth = day * 15;
var months = day * 30;
var nows = new Date().getTime();
var diffValue = nows - sj;
if (diffValue < 0) {
return;
}
var monthC = diffValue / months;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hours;
var minC = diffValue / minutes;
let result = ''
// if(monthC>=1){
// return result="" + parseInt(monthC) + "月前";
// }else if(weekC>=1){
// console.log(dayC)
// return result="" + parseInt(weekC) + "周前";
// }
if (dayC > 30) {
return time;
} else if (dayC >= 1) {
return result = "" + parseInt(dayC) + "天前";
} else if (hourC >= 1) {
return result = "" + parseInt(hourC) + "小时前";
} else if (minC >= 1) {
return result = "" + parseInt(minC) + "分钟前";
} else if (minC < 1) {
return result = "刚刚";
}
},
距离换算单位
kilometre(m) {
let result = ''
if (m >= 1000) {
m = m / 1000
return result = parseInt(m) + "km";
}
return result = parseInt(m) + "m";
},
时间换算
toTime(ms) {
let min = Math.floor((ms / 1000 / 60) << 0);
let sec = Math.floor((ms / 1000) % 60);
return min + ':' + sec;
},
获取元素的详细信息
getElSize(name) {
return new Promise((res, rej) => {
const query = uni.createSelectorQuery()
query.select('.' + name).boundingClientRect()
query.exec(function(data) {
res(data[0]);
})
});
},
时间换算
formatTime(time) {
if (typeof time !== 'number' || time < 0) {
return time
}
var hour = parseInt(time / 3600)
time = time % 3600
var minute = parseInt(time / 60)
time = time % 60
var second = time
return ([hour, minute, second]).map(function (n) {
n = parseInt(n)
return n[1] ? n[2]? n : '0' + n : n
}).join(':')
}
其它前端工具方法
https://zhuanlan.zhihu.com/p/143648922