1.时间戳转日期格式
/**
* 时间戳转日期格式
* @param {Object} timeStamp
*/
timeStampTurnTime(timeStamp) {
if (timeStamp != undefined && timeStamp != "" && timeStamp > 0) {
var date = new Date()
date.setTime(timeStamp * 1000)
var y = date.getFullYear()
var m = date.getMonth() + 1
m = m < 10 ? "0" + m : m
var d = date.getDate()
d = d < 10 ? "0" + d : d
var h = date.getHours()
h = h < 10 ? "0" + h : h
var minute = date.getMinutes()
var second = date.getSeconds()
minute = minute < 10 ? "0" + minute : minute
second = second < 10 ? "0" + second : second
return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + second
} else {
return ""
}
},
2.日期与字符串互相转换
//日期->字符串
dateToString(date){
var year = date.getFullYear();
var month =(date.getMonth() + 1).toString();
var day = (date.getDate()).toString();
if (month.length == 1) {
month = "0" + month;
}
if (day.length == 1) {
day = "0" + day;
}
var dateTime = year + "-" + month + "-" + day;
return dateTime;
},
//字符串->日期
stringToDate(dateStr,separator){
if(!separator){
separator="-";
}
var dateArr = dateStr.split(separator);
var year = parseInt(dateArr[0]);
var month;
//处理月份为04这样的情况
if(dateArr[1].indexOf("0") == 0){
month = parseInt(dateArr[1].substring(1));
}else{
month = parseInt(dateArr[1]);
}
var day = parseInt(dateArr[2]);
var date = new Date(year,month -1,day);
return date;
},
3.倒计时
/**
* 倒计时
* @param {Object} seconds 秒
*/
countDown(seconds) {
let [day, hour, minute, second] = [0, 0, 0, 0]
if (seconds > 0) {
day = Math.floor(seconds / (60 * 60 * 24))
hour = Math.floor(seconds / (60 * 60)) - day * 24
minute = Math.floor(seconds / 60) - day * 24 * 60 - hour * 60
second = Math.floor(seconds) - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60
}
if (day < 10) {
// day = '0' + day
}
if (hour < 10) {
// hour = '0' + hour
}
if (minute < 10) {
// minute = '0' + minute
}
if (second < 10) {
// second = '0' + second
}
return {
d: day,
h: hour,
i: minute,
s: second
}
},
4.数组去重
/**
* 数值去重
* @param {Array} arr 数组
* @param {string} field 字段
*/
unique(arr, field) {
const res = new Map()
return arr.filter(a => !res.has(a[field]) && res.set(a[field], 1))
},
5.获取某一天的日期
/**
* 获取某天日期
* @param {Object} day
* 以当天日期为准,day = 1 时则是明天的日期 day = -1则是昨天的日期
*/
getDay: function(day) {
var today = new Date()
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day
today.setTime(targetday_milliseconds)
const doHandleMonth = function(month) {
var m = month
if (month.toString().length == 1) {
m = "0" + month
}
return m
}
var tYear = today.getFullYear()
var tMonth = today.getMonth()
var tDate = today.getDate()
var tWeek = today.getDay()
var time = parseInt(today.getTime() / 1000)
tMonth = doHandleMonth(tMonth + 1)
tDate = doHandleMonth(tDate)
const week = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
return {
t: time,
y: tYear,
m: tMonth,
d: tDate,
w: week[tWeek]
}
},
6.复制
/**
* 复制
* @param {Object} message
* @param {Object} callback
*/
copy(value, callback) {
var oInput = document.createElement("input") //创建一个隐藏input(重要!)
oInput.value = value //赋值
document.body.appendChild(oInput)
oInput.select() // 选择对象
document.execCommand("Copy") // 执行浏览器复制命令
oInput.className = "oInput"
oInput.style.display = "none"
vue.$message({
message: "复制成功",
type: "success"
})
typeof callback == "function" && callback()
},
7.深度拷贝
/**
* 深度拷贝对象
* @param {Object} obj
*/
deepClone(obj) {
const isObject = function(obj) {
return typeof obj == "object"
}
if (!isObject(obj)) {
throw new Error("obj 不是一个对象!")
}
//判断传进来的是对象还是数组
let isArray = Array.isArray(obj)
let cloneObj = isArray ? [] : {}
//通过for...in来拷贝
for (let key in obj) {
cloneObj[key] = isObject(obj[key]) ? this.deepClone(obj[key]) : obj[key]
}
return cloneObj
}
8.对象数组去重
1.保留一个
let arr = [
{ id: 0, name: "张三" },
{ id: 1, name: "李四" },
{ id: 2, name: "王五" },
{ id: 3, name: "赵六" },
{ id: 1, name: "孙七" },
{ id: 2, name: "周八" },
{ id: 2, name: "吴九" },
{ id: 3, name: "郑十" },
];
const removeDuplicateObj = (arr) => {
let obj = {};
arr = arr.reduce((newArr, next) => {
obj[next.id] ? "" : (obj[next.id] = true && newArr.push(next));
return newArr;
}, []);
return arr;
};
2.去除所有重复的
const removeDuplicateObj = (arr) => {
let obj = {};
arr = arr.reduce((newArr, next) => {
obj[next.key] ? "" : (obj[next.key] = true && newArr.push(next));
return newArr;
}, []);
return arr;
};