(function (w) { function $Date (isFormat = true) {
this.dateFormat = function (date, fmt = 'yyyy-MM-dd hh:mm:ss') {
let getDate = new Date(date);
let o = {
'M+': getDate.getMonth() + 1,
'd+': getDate.getDate(),
'h+': getDate.getHours(),
'm+': getDate.getMinutes(),
's+': getDate.getSeconds(),
'q+': Math.floor(
(getDate.getMonth() + 3) / 3
),
'S': getDate.getMilliseconds()
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (let 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;
};
this.now = isFormat ? this.dateFormat(new Date()) : new Date();
this.date = this.dateFormat(new Date()).split(' ')[0];
this.time = this.dateFormat(new Date()).split(' ')[1];
this.month = new Date().getMonth() + 1;
this.hours = new Date().getHours();
this.monthDays = (() => {
let nowMonth = new Date().getMonth(); // 当前月
let nowYear = new Date().getYear(); // 当前年
let monthStartDate = new Date(nowYear, nowMonth, 1);
let monthEndDate = new Date(nowYear, nowMonth + 1, 1);
let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
})();
this.endDayOfWeek = (() => {
let nowMonth = new Date().getMonth(); // 当前月
let nowDay = new Date().getDate(); // 当前日
let nowDayOfWeek = new Date().getDay(); // 今天本周的第几天
let day = nowDayOfWeek || 7;
const start = new Date(new Date().getFullYear(), nowMonth, nowDay - day + 1);
const starts = new Date(new Date().getFullYear(), nowMonth, nowDay - day + 1);
const end = new Date(new Date().getFullYear(), nowMonth, nowDay + 7 - day);
const ends = new Date(new Date().getFullYear(), nowMonth, nowDay + 7 - day);
starts.setHours(23);
starts.setMinutes(59);
starts.setSeconds(59);
ends.setHours(23);
ends.setMinutes(59);
ends.setSeconds(59);
const firstDay = isFormat ? this.dateFormat(start) : start;
const firstDays = isFormat ? this.dateFormat(starts) : starts;
const lastDay = isFormat ? this.dateFormat(end) : end;
const lastDays = isFormat ? this.dateFormat(ends) : ends;
return {firstDay, firstDays, lastDay, lastDays};
})();
this.todayBegin = (() => {
const now = new Date();
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
return isFormat ? this.dateFormat(now) : now;
})();
this.todayEnd = (() => {
const now = new Date();
now.setHours(23);
now.setMinutes(59);
now.setSeconds(59);
return isFormat ? this.dateFormat(now) : now;
})();
this.getNowTheMothEnd = (M) => {
if (typeof M !== 'number') {
throw new Error('输入数字');
}
if (M < 0 || M > 12) {
console.error('日期大于1小于12');
return false;
}
const now = new Date();
let y = now.getFullYear();
let m = M - 1;
const firstDay = new Date(y, m, 1);
const firstDays = new Date(y, m, 1);
firstDays.setHours(23);
firstDays.setMinutes(59);
firstDays.setSeconds(59);
const lastDay = new Date(y, m + 1, 0);
const lastDays = new Date(y, m + 1, 0);
lastDays.setHours(23);
lastDays.setMinutes(59);
lastDays.setSeconds(59);
return {
firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,
firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,
lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,
lastDays: isFormat ? this.dateFormat(lastDays) : lastDays
};
};
this.nowMothEnd = (() => {
const now = new Date();
let y = now.getFullYear();
let m = now.getMonth();
const firstDay = new Date(y, m, 1);
const firstDays = new Date(y, m, 1);
firstDays.setHours(23);
firstDays.setMinutes(59);
firstDays.setSeconds(59);
const lastDay = new Date(y, m + 1, 0);
const lastDays = new Date(y, m + 1, 0);
lastDays.setHours(23);
lastDays.setMinutes(59);
lastDays.setSeconds(59);
return {
firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,
firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,
lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,
lastDays: isFormat ? this.dateFormat(lastDays) : lastDays
};
})();
this.nowYearsEnd = (() => {
const now = new Date();
let y = now.getFullYear();
let m = now.getMonth();
console.log(m);
const firstDay = new Date(y, 0, 1);
const firstDays = new Date(y, 0, 1);
firstDays.setHours(23);
firstDays.setMinutes(59);
firstDays.setSeconds(59);
const lastDay = new Date(y, 12, 0);
const lastDays = new Date(y, 12, 0);
lastDays.setHours(23);
lastDays.setMinutes(59);
lastDays.setSeconds(59);
return {
firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,
firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,
lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,
lastDays: isFormat ? this.dateFormat(lastDays) : lastDays
};
})();
this.nowTheYearsEnd = (Y) => {
const now = new Date();
let y = Y;
let m = now.getMonth();
console.log(m);
const firstDay = new Date(y, 0, 1);
const firstDays = new Date(y, 0, 1);
firstDays.setHours(23);
firstDays.setMinutes(59);
firstDays.setSeconds(59);
const lastDay = new Date(y, 12, 0);
const lastDays = new Date(y, 12, 0);
lastDays.setHours(23);
lastDays.setMinutes(59);
lastDays.setSeconds(59);
return {
firstDay: isFormat ? this.dateFormat(firstDay) : firstDay,
firstDays: isFormat ? this.dateFormat(firstDays) : firstDays,
lastDay: isFormat ? this.dateFormat(lastDay) : lastDay,
lastDays: isFormat ? this.dateFormat(lastDays) : lastDays
};
};
this.getNowBeforeNday = (N) => {
const now = new Date().getTime();
const before = new Date().getTime() - (24 * 60 * 60 * 1000) * N;
return {
now: isFormat ? this.dateFormat(new Date(now)) : new Date(now),
before: isFormat ? this.dateFormat(new Date(before)) : new Date(before)
};
};
this.getNowAfterNday = (N) => {
const now = new Date().getTime();
const after = new Date().getTime() + (24 * 60 * 60 * 1000) * N;
return {
now: isFormat ? this.dateFormat(new Date(now)) : new Date(now),
after: isFormat ? this.dateFormat(new Date(after)) : new Date(after)
};
};
} w.$Date = $Date; })(window); const date = window.$Date; export default $Date = date; module.exports = { date };