一、数组的处理
1、随机获取数组里面的N个对象
getRandomArrayElements(arr, count) {
var shuffled = arr.slice(0),
i = arr.length,
min = i - count,
temp,
index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
},
一、日期范围类
export default {
getCurrentDate : function () {
return new Date();
},
getCurrentWeek : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var week = currentDate.getDay();
var month = currentDate.getDate();
var millisecond = 1000 * 60 * 60 * 24;
var minusDay = week != 0 ? week - 1 : 6;
var monday = new Date(currentDate.getTime() - (minusDay * millisecond));
var sunday = new Date(monday.getTime() + (6 * millisecond));
startStop.push(monday.format("yyyy-MM-dd"));
startStop.push(sunday.format("yyyy-MM-dd"));
return startStop;
},
getCurrentMonth : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var firstDay = new Date(currentYear, currentMonth, 1);
if (currentMonth == 11) {
currentYear++;
currentMonth = 0;
} else {
currentMonth++;
}
var millisecond = 1000 * 60 * 60 * 24;
var nextMonthDayOne = new Date(currentYear, currentMonth, 1);
var lastDay = new Date(nextMonthDayOne.getTime() - millisecond);
startStop.push(firstDay.format("yyyy-MM-dd"));
startStop.push(lastDay.format("yyyy-MM-dd"));
return startStop;
},
getQuarterSeasonStartMonth : function (month) {
var quarterMonthStart = 0;
var spring = 0;
var summer = 3;
var fall = 6;
var winter = 9;
if (month < 3) {
return spring;
}
if (month < 6) {
return summer;
}
if (month < 9) {
return fall;
}
return winter;
},
getMonthDays: function (year, month) {
var relativeDate = new Date(year, month, 1);
var relativeMonth = relativeDate.getMonth();
var relativeYear = relativeDate.getFullYear();
if (relativeMonth == 11) {
relativeYear++;
relativeMonth = 0;
} else {
relativeMonth++;
}
var millisecond = 1000 * 60 * 60 * 24;
var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1);
return new Date(nextMonthDayOne.getTime() - millisecond).getDate();
},
getCurrentSeason : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var quarterSeasonStartMonth = this.getQuarterSeasonStartMonth(currentMonth);
var quarterSeasonEndMonth = quarterSeasonStartMonth + 2;
var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1);
var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, this.getMonthDays(currentYear, quarterSeasonEndMonth));
startStop.push(quarterSeasonStartDate.format("yyyy-MM-dd"));
startStop.push(quarterSeasonEndDate.format("yyyy-MM-dd"));
return startStop;
},
getCurrentSeasonToday : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var quarterSeasonStartMonth = this.getQuarterSeasonStartMonth(currentMonth);
var quarterSeasonEndMonth = quarterSeasonStartMonth + 2;
var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1);
startStop.push(quarterSeasonStartDate.format("yyyy-MM-dd"));
startStop.push(currentDate.format("yyyy-MM-dd"));
return startStop;
},
getCurrentYear : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentYear = currentDate.getFullYear();
var currentYearFirstDate = new Date(currentYear, 0, 1);
var currentYearLastDate = new Date(currentYear, 11, 31);
startStop.push(currentYearFirstDate.format("yyyy-MM-dd"));
startStop.push(currentYearLastDate.format("yyyy-MM-dd"));
return startStop;
},
getPriorMonthFirstDay: function (year, month) {
if (month == 0) {
month = 11;
year--;
return new Date(year, month, 1);
}
month--;
return new Date(year, month, 1); ;
},
getPreviousMonth : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var priorMonthFirstDay = this.getPriorMonthFirstDay(currentYear, currentMonth);
var priorMonthLastDay = new Date(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth(), this.getMonthDays(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth()));
startStop.push(priorMonthFirstDay.format("yyyy-MM-dd"));
startStop.push(priorMonthLastDay.format("yyyy-MM-dd"));
return startStop;
},
getPreviousWeek : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var week = currentDate.getDay();
var month = currentDate.getDate();
var millisecond = 1000 * 60 * 60 * 24;
var minusDay = week != 0 ? week - 1 : 6;
var currentWeekDayOne = new Date(currentDate.getTime() - (millisecond * minusDay));
var priorWeekLastDay = new Date(currentWeekDayOne.getTime() - millisecond);
var priorWeekFirstDay = new Date(priorWeekLastDay.getTime() - (millisecond * 6));
startStop.push(priorWeekFirstDay.format("yyyy-MM-dd"));
startStop.push(priorWeekLastDay.format("yyyy-MM-dd"));
return startStop;
},
getPriorSeasonFirstDay: function (year, month) {
var quarterMonthStart = 0;
var spring = 0;
var summer = 3;
var fall = 6;
var winter = 9;
switch (month) {
case spring:
year--;
month = winter;
break;
case summer:
month = spring;
break;
case fall:
month = summer;
break;
case winter:
month = fall;
break;
}
return new Date(year, month, 1);
},
getPreviousSeason : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentMonth = currentDate.getMonth();
var currentYear = currentDate.getFullYear();
var priorSeasonFirstDay = this.getPriorSeasonFirstDay(currentYear, currentMonth);
var priorSeasonLastDay = new Date(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2, this.getMonthDays(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2));
startStop.push(priorSeasonFirstDay.format("yyyy-MM-dd"));
startStop.push(priorSeasonLastDay.format("yyyy-MM-dd"));
return startStop;
},
getPreviousYear : function () {
var startStop = new Array();
var currentDate = this.getCurrentDate();
var currentYear = currentDate.getFullYear();
currentYear--;
var priorYearFirstDay = new Date(currentYear, 0, 1);
var priorYearLastDay = new Date(currentYear, 11, 1);
startStop.push(priorYearFirstDay.format("yyyy-MM-dd"));
startStop.push(priorYearLastDay.format("yyyy-MM-dd"));
return startStop;
},
getYearWeek: function(time) {
var totalDays = 0;
let now = new Date(time);
let years = now.getYear()
if (years < 1000)
years += 1900
var days = new Array(12);
days[0] = 31;
days[2] = 31;
days[3] = 30;
days[4] = 31;
days[5] = 30;
days[6] = 31;
days[7] = 31;
days[8] = 30;
days[9] = 31;
days[10] = 30;
days[11] = 31;
if (Math.round(now.getYear() / 4) == now.getYear() / 4) {
days[1] = 29
} else {
days[1] = 28
}
if (now.getMonth() == 0) {
totalDays = totalDays + now.getDate();
} else {
var curMonth = now.getMonth();
for (var count = 1; count <= curMonth; count++) {
totalDays = totalDays + days[count - 1];
}
totalDays = totalDays + now.getDate();
}
var week = Math.round(totalDays / 7);
return week;
},
getCurrentWeekByAppointTime : function (time, flag) {
var startStop = new Array();
var currentDate = time;
var week = currentDate.getDay();
var month = currentDate.getDate();
var millisecond = 1000 * 60 * 60 * 24;
var minusDay = week != 0 ? week + flag : 6;
var monday = new Date(currentDate.getTime() - (minusDay * millisecond));
var sunday = new Date(monday.getTime() + (6 * millisecond));
startStop.push(monday.format("yyyy-MM-dd"));
startStop.push(sunday.format("yyyy-MM-dd"));
return startStop;
},
}
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth()+3)/3),
"S" : this.getMilliseconds()
}
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
}
getRecentDay : function (n:any) {
let day = moment(new Date())
.subtract(n, "days")
.format("YYYY-MM-DD");
return day;
}
}