(1)时间格式处理方法
/** * 格式化时间 * @param date 日期 * @param format 需要转出的格式 * @returns {*} */
function dateTimeFormatter (date, format) { if (!date || date === '') { return '' } if (typeof date === 'string') { var mts = date.match(/(\/Date\((\d+)\)\/)/) if (mts && mts.length >= 3) { date = parseInt(mts[2]) } } date = new Date(date) if (!date || date.toUTCString() === 'Invalid Date') { return '' } var map = { 'M': date.getMonth() + 1, // 月份 'd': date.getDate(), // 日 'h': date.getHours(), // 小时 'm': date.getMinutes(), // 分 's': date.getSeconds(), // 秒 'q': Math.floor((date.getMonth() + 3) / 3), // 季度 'S': date.getMilliseconds() // 毫秒 } format = format.replace(/([yMdhmsqS])+/g, function (all, t) { var v = map[t] if (v !== undefined) { if (all.length > 1) { v = '0' + v v = v.substr(v.length - 2) } return v } else if (t === 'y') { return (date.getFullYear() + '').substr(4 - all.length) } return all }) return format }
(2)获取星期几
/**
* 获取星期几
* @param date 日期字符串
* return {String}
*/function dayFormat (date) { switch (new Date(date).getDay()) { case 0: return '星期日' case 1: return '星期一' case 2: return '星期二' case 3: return '星期三' case 4: return '星期四' case 5: return '星期五' case 6: return '星期六' } }
(3)获取两个时间差
/**
* 计算两个时间差
* @param {Data} startTime 开始时间(xxxx-xx-xx)
* @param {Data} endTime 结束时间(xxxx-xx-xx)
* return xx年xx天 || xx天xx小时 || xx小时xx分
*/
function getDateDiff(startTime, endTime) {
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
var sTime = new Date(startTime); //开始时间
var eTime = new Date(endTime); //结束时间
var timeOff = eTime - sTime; //相差时间戳(毫秒数)
var timeMinute = 1000 * 60;
var timeHour = 1000 * 3600;
var timeDay = 1000 * 3600 * 24;
var timeYear = 1000 * 3600 * 24 * 365;
if(timeOff / timeYear >= 1) {
return parseInt(timeOff / timeYear) + "年" + parseInt((timeOff % timeYear)/timeDay) + "天";
} else if(timeOff / timeDay >= 1) {
return parseInt(timeOff / timeDay) + "天" + parseInt((timeOff % timeDay)/timeHour) + "小时";
} else {
return parseInt(timeOff / timeHour) + "小时" + parseInt((timeOff % timeHour)/timeMinute) + "分";
}
}
(4)获取最小开始日期
/* today 是今天的时间戳(new Date().getTime()) */
function minStartDate (today, day) {
let dayDiff = day * 24 * 60 * 60 *1000 // day(多少天)的时间戳
let minStartTime = today - dayDiff
// dateTimeFormatter是第一个时间类的方法
return dateTimeFormatter(minStartTime, 'yyyy-MM-dd')
}
(5)获取两个日期相差天数
function dateDiff (sDate1, sDate2) {
let arrDate, objDate1, objDate2, iDays;
arrDate = sDate1.split('-');
objDate1 = new Date(arrDate[1] + '/' + arrDate[2] + '/' + arrDate[0])
arrDate = sDate2.split('-');
objDate2 = new Date(arrDate[1] + '/' + arrDate[2] + '/' + arrDate[0]);
iDays = parseInt(Math.abs(objDate1 - objDate2) / 1000 / 60 / 60 / 24); // 相差毫秒数转成天数
return iDays;
}
2、关于cookie的方法
(1)设置cookie
/**
* 设置cookie
* @param name cookie名
* @param value cookie值
*/function setCookie(name, value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); }
(2)获取cookie
/**
* 获取cookie
* @param name cookie名
*/function getCookie(name) { var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if(arr = document.cookie.match(reg)) return unescape(arr[2]); else return null; }
(3)删除cookie
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
}
3、缓存的一些方法
(1) 设置缓存
let setStorageItem = function(itemName,value){
return window.localStorage.setItem(itemName,value);
}
(2)获取缓存
let getStorageItem = function(itemName){
return window.localStorage.getItem(itemName);
}
(3)删除缓存
let clearStorage = function(){
window.localStorage.clear();
}
4、数组的一些处理
(1) 比较两个数组是否相等
function arrayEqual(arr1, arr2) {
if (arr1 === arr2) return true;
if (arr1.length != arr2.length) return false;
for (var i = 0; i < arr1.length; ++i) {
if (arr1[i] !== arr2[i]) return false;
}
return true;
}
(2)数组去重
function removeR(arr, str) {
for(var i = 0; i < arr.length; i++) {
for(var j = i + 1; j < arr.length; j++) {
if(arr[i][str] == arr[j][str]) {
arr.splice(i, 1);
j--
}
}
}
return arr;
};
5、正则判断
(1)邮箱格式正误
/**
* 判断是否为邮箱地址
* @param {String} str
* @return {Boolean}
*/function isEmail(str) { return /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(str); }
(2)手机号格式正误
/**
* 判断是否为手机号
* @param {String|Number} str
* @return {Boolean}
*/function isPhoneNum(str) { return /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/.test(str) }