1、判断两个对象是否相等
different(obj1,obj2){
var o1 = obj1 instanceof Object;
var o2 = obj2 instanceof Object;
if(!o1 || !o2){
return obj1 === obj2;
}
if(Object.keys(obj1).length !== Object.keys(obj2).length){
return false;
}
for(var attr in obj1){
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if(t1 && t2){
return this.diff(obj1[attr],obj2[attr]);
}else if(obj1[attr] !== obj2[attr]){
return false;
}
}
return true;
},
2、复制一个对象
objDeepCopy(source) {
var sourceCopy = source instanceof Array ? [] : {};
for (var item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? this.objDeepCopy(source[item]) : source[item];
}
return sourceCopy;
},
3、判断两个日期间隔的天数
dateDifferent(Date1,Date2) {
var newDate1 = new Date(Date1);
var newDate2 = new Date(Date2);
var Days ;
Days = parseInt(Math.abs(newDate1 - newDate2) / 1000 / 60 / 60 / 24); //把差的毫秒数转换为天数
return Days;
},
4、格式化时间:2018-12-12 12:12格式:
formatTime: function(time){
var date = new Date(time);
var hours = date.getHours()>=10?date.getHours():('0'+date.getHours());
var minutes = date.getMinutes()>=10?date.getMinutes():('0'+date.getMinutes());
var dateValue=date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + hours + ':' + minutes;
return dateValue;
}
5、获取n天前(n<0)或者n天后(n>0)的日期:
fun_date(n){
var date2 = new Date();
date2.setDate(new Date().getDate()+n);
var time2 = date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+date2.getDate();
return time2
},
6、时间戳转为普通日期格式:
function add0(m){return m<10?'0'+m:m }
function format(date){
var time = new Date(date);
var y = time.getFullYear();
var m = time.getMonth()+1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
}
7、js获取url中的参数:
// 获取url中的指定参数
GetRequest2: function(key){
var url = location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
var strs = str.split("&");
for (var i = 0; i < strs.length; i++){
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
var value = theRequest[key];
return value;
},
8、移动端加入console(很实用的一个工具),在header添加:
<script src="https://cdn.bootcss.com/vConsole/3.3.2/vconsole.min.js"></script>
<script>
var vConsole = new VConsole();
</script>
9、图片的bese64格式转化为文件格式:
dataURLtoFile: function(dataurl, filename) {//将base64转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
},
10、H5输入框简单的判断有没有输入表情符号(不能准确地判断出每一个表情):
isInputEmoji: function(param){
var regRule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;
if(param.match(regRule)) {
return false;
}else{
return true;
}
},
11、复制文字到剪切板:
copyText: function(text){
var oInput = document.createElement('input');
oInput.value = text;
document.body.appendChild(oInput);
oInput.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
oInput.className = 'oInput';
oInput.style.display='none';
this.$Message.success('已复制到剪切板');
}