var now = new Date(); // 当前日期
|
var nowDayOfWeek = now.getDay(); // 今天本周的第几天
|
var nowDay = now.getDate(); // 当前日
|
var nowMonth = now.getMonth(); // 当前月
|
var nowYear = now.getYear(); // 当前年
|
nowYear += (nowYear < 2000) ? 1900 : 0;
|
|
module.exports = {
|
/**
|
* 获得近几天的日期
|
*
|
* @returns
|
*/
|
getDayList(day, fmt) {
|
//设置日期,当前日期的前七天
|
var myDate = new Date(); //获取今天日期
|
myDate.setDate(myDate.getDate() - day + 1);
|
var dateArray = [];
|
var dateTemp;
|
var flag = 1;
|
for (var i = 0; i < day; i++) {
|
dateTemp = this.formatDate(myDate, fmt);
|
dateArray.push(dateTemp);
|
myDate.setDate(myDate.getDate() + flag);
|
}
|
return dateArray;
|
},
|
|
/**
|
* 获得当前日期
|
*
|
* @returns
|
*/
|
getNowDay(fmt) {
|
return this.formatDate(new Date(), fmt);
|
},
|
/**
|
* 获得本周的开始时间
|
*
|
* @returns
|
*/
|
getStartDayOfWeek(fmt) {
|
var day = nowDayOfWeek || 7;
|
return this.formatDate(new Date(now.getFullYear(), nowMonth, nowDay + 1 - day), fmt);
|
},
|
/**
|
* 获得本周的结束时间
|
*
|
* @returns
|
*/
|
getEndDayOfWeek(fmt) {
|
var day = nowDayOfWeek || 7;
|
return this.formatDate(new Date(now.getFullYear(), nowMonth, nowDay + 7 - day), fmt);
|
},
|
/**
|
* 获得本月的开始时间
|
*
|
* @returns
|
*/
|
getStartDayOfMonth(fmt) {
|
var monthStartDate = new Date(nowYear, nowMonth, 1);
|
return this.formatDate(monthStartDate, fmt);
|
},
|
/**
|
* 获得本月的结束时间
|
*
|
* @returns
|
*/
|
getEndDayOfMonth(fmt) {
|
var monthEndDate = new Date(nowYear, nowMonth, this.getMonthDays());
|
return this.formatDate(monthEndDate, fmt);
|
},
|
/**
|
* 获得本月天数
|
*
|
* @returns
|
*/
|
getMonthDays() {
|
var monthStartDate = new Date(nowYear, nowMonth, 1);
|
var monthEndDate = new Date(nowYear, nowMonth + 1, 1);
|
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
|
return days;
|
},
|
|
formatTime(time, option) {
|
const d = new Date(time.replace(/-/g, '/'))
|
const now = Date.now()
|
|
const diff = (now - d) / 1000
|
|
if (diff < 30) {
|
return '刚刚'
|
} else if (diff < 3600) {
|
// less 1 hour
|
return Math.ceil(diff / 60) + '分钟前'
|
} else if (diff < 3600 * 24) {
|
return Math.ceil(diff / 3600) + '小时前'
|
} else if (diff < 3600 * 24 * 2) {
|
return '1天前'
|
}
|
if (option) {
|
return this.formatDate(time, option)
|
} else {
|
return (
|
d.getMonth() +
|
1 +
|
'月' +
|
d.getDate() +
|
'日' +
|
d.getHours() +
|
'时' +
|
d.getMinutes() +
|
'分'
|
)
|
}
|
},
|
/**
|
* @param 日期格式化
|
* @returns {String}
|
*/
|
formatDate(date, fmt) {
|
if (!date) {
|
return
|
}
|
if (!fmt) {
|
fmt = 'yyyy-MM-dd'
|
}
|
if (!(date instanceof Date)) {
|
date = new Date(date.replace(/-/g, '/'))
|
}
|
|
if (/(y+)/.test(fmt)) {
|
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
}
|
|
let o = {
|
'M+': date.getMonth() + 1,
|
'd+': date.getDate(),
|
'h+': date.getHours(),
|
'm+': date.getMinutes(),
|
's+': date.getSeconds()
|
};
|
|
for (let k in o) {
|
if (new RegExp(`(${k})`).test(fmt)) {
|
let str = o[k] + '';
|
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
|
}
|
}
|
return fmt;
|
}
|
};
|