1、关于时间格式化的方法
(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)
}
————————————————
版权声明:本文为优快云博主「机器猫zhao」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/zx_p24/article/details/81388774