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; } };