一.日期/时间相关
1.格式化时间
$.prototype.getTime = (str, status) => {
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
复制代码
$.prototype.formatTamp = (num, status) => {
let date = new Date(num);
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let hour = date.getHours()
let minute = date.getMinutes()
let second = date.getSeconds()
let time = ''
switch (status) {
case 1: time = year + '年' + month + '月' + day + '日'
break;
case 2: time = year + '年' + month + '月'
break;
case 3: time = year + '/' + month + '/' + day + ' ' + hour + ':' + minute + ':' + second
break;
case 4: time = year + '-' + month + '-' + day
break;
}
return time
}
复制代码
formatDate(date){//将标准时间转为YYYY-MM-dd 格式
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return year + "-" + formatTen(month) + "-" + formatTen(day);
}
function formatTen(num) {
return num > 9 ? (num + "") : ("0" + num);
}
复制代码
formatDate(time){
if(!time) return '';
let date = new Date(time);
return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+'-'+date.getMinutes()+'-'+date.getSeconds();
},
复制代码
2.获取指定天数之前的日期
var getAgoDate = (date,num) => {
let date = (new Date(date.replace(new RegExp("-","gm"),"/"))).getTime() - num * 24 * 60 * 60 * 1000;
let newDate = new Date(date);
return newDate.getFullYear()+'-'+(newDate.getMonth() + 1)+'-'+newDate.getDate();
}
或者
function GetDay(day) {
var time = new Date();
time.setDate(time.getDate() + day);//获取Day天后的日期
var y = time.getFullYear();
var m = time.getMonth() + 1;//获取当前月份的日期
var d = time.getDate();
return y + "-" + m + "-" + d;
}
复制代码
3.比较两个日期大小
var compareDate = (dateStart,dateEnd) => {
let startTime = new Date(dateStart);
let endTime = new Date(dateEnd);
let result = 0;
if((endTime - startTime) > 0){
result = 1;
}else if((endTime - startTime) < 0){
result = -1;
}
return result;
}
复制代码
二.cookie相关
Vue.prototype.setCookie = function(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();
}
Vue.prototype.getCookie = function(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
Vue.prototype.delCookie = function(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.ajax相关
owner.ajax = function (method, uri, options, callback) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
return callback(xmlhttp.responseText);
}
}
xmlhttp.open(method, uri, true);
xmlhttp.send(options);
};
复制代码
三.地址栏参数
1.获取地址栏参数
var getQueryStringValue = (name)=>{
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.href.substr(window.location.href.indexOf("?")+1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
复制代码
2.获取地址栏的hash值
window.location.hash;
window.location.hash.substr(1);
复制代码
四.数组
1.数组去重
uniqueArray (arr) {
var res = [arr[0]];
for(var i = 1; i < arr.length; i++){
var repeat = false;
for(var j = 0; j < res.length; j++){
if(arr[i] === res[j]){
repeat = true;
break;
}
}
if(!repeat){
res.push(arr[i]);
}
}
return res;
}
复制代码
2.数组排序
var sortArray = (arr, type) => {
if(arr != '' ){
arr.sort(function (a, b) {
if (a[type] > b[type]) {
return 1;
} else if (a[type] < b[type]) {
return -1
} else {
return 0;
}
});
}else{
arr = [{dataGroupName:'0',typeRate:0}]
}
return arr
}
复制代码
arr.sort((a,b)=> a-b);//从小到大
arr.sort((a,b)=> b-a);//从大到小
复制代码