UNPKG

app-base-web

Version:
1,164 lines (1,123 loc) 31.5 kB
/** * @module date */ var getNextDate = function (nowDate, weekDay) { // 0是星期日,1是星期一,... weekDay %= 7; var day = nowDate.getDay(); var time = nowDate.getTime(); var sub = weekDay - day; if (sub <= 0) { sub += 7; } time += sub * 24 * 3600000; nowDate.setTime(time); return nowDate.getFullYear() + "-" + fix((nowDate.getMonth() + 1), 2) + "-" + fix(nowDate.getDate(), 2); }; var fix = function (num, length) { return ('' + num).length < length ? ((new Array(length + 1)).join('0') + num).slice(-length) : '' + num; }; var getXDate = function (year, weeks, weekDay) { // 用指定的年构造一个日期对象,并将日期设置成这个年的1月1日 // 因为计算机中的月份是从0开始的,所以有如下的构造方法 var date = new Date(year, "0", "1"); // 取得这个日期对象 date 的长整形时间 time var time = date.getTime(); // 将这个长整形时间加上第N周的时间偏移 // 因为第一周就是当前周,所以有:weeks-1,以此类推 // 7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒) time += (weeks - 1) * 7 * 24 * 3600000; // 为日期对象 date 重新设置成时间 time date.setTime(time); return getNextDate(date, weekDay); }; module.exports = { /** * 格式化日期 * * @param {date|string} date - 日期 * @param {string} pattern - Y:年 M:月 D:日 h:小时 m:分钟 s:秒 Q:季度 S:毫秒 * @returns {string} 返回格式后的日期 */ format: function (date, pattern = "YYYY-MM-DD hh:mm:ss") { date = this._transferDate(date) let o = { "M+": date.getMonth() + 1, "D+": date.getDate(), "h+": date.getHours(), "m+": date.getMinutes(), "s+": date.getSeconds(), "Q+": Math.floor((date.getMonth() + 3) / 3), "S": date.getMilliseconds() }; if (/(Y+)/.test(pattern)) { pattern = pattern.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (let k in o) { if (new RegExp("(" + k + ")").test(pattern)) { pattern = pattern.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } } return pattern; }, /** * 计算时间 * * @param {date|string} date - 日期对象 * @param {string} pattern - year,month,day,hour,minute,seconds,week,daytime,when * @returns {string} 根据pattern返回 */ countTime: function (date, pattern) { date = this._transferDate(date) let day = date.getDate(); let month = date.getMonth() + 1; let year = date.getFullYear(); let hour = date.getHours(); let minute = date.getMinutes(); let seconds = date.getSeconds(); if (year < 10) { year = "0" + year } if (day < 10) { day = "0" + day } if (hour < 10) { hour = "0" + hour } if (minute < 10) { minute = "0" + minute } if (seconds < 10) { seconds = "0" + seconds } if (pattern === "year") { return year; } if (pattern === "month") { return month; } if (pattern === "day") { return day; } if (pattern === "hour") { return hour; } if (pattern === "minute") { return minute; } if (pattern === "seconds") { return seconds; } if (pattern === "week") { let w_d; switch (date.getDay()) { case 0: w_d = "星期天"; break; case 1: w_d = "星期一"; break; case 2: w_d = "星期二"; break; case 3: w_d = "星期三"; break; case 4: w_d = "星期四"; break; case 5: w_d = "星期五"; break; case 6: w_d = "星期六"; break; default: return null } return w_d; } if (pattern === "daytime") { if (hour < 11 && hour > 6) { return "早晨"; } if (hour <= 14 && hour >= 11) { return "中午"; } if (hour > 14 && hour < 19) { return "下午"; } if (hour >= 19 && hour <= 23) { return "晚上"; } if (hour < 6 && hour >= 0) { return "凌晨"; } } if (pattern === "when") { let now = new Date(); let now_year = now.getFullYear(); let now_month = now.getMonth() + 1; let now_day = now.getDate(); let now_hour = now.getHours(); let now_minute = now.getMinutes(); let now_seconds = now.getSeconds(); // 比较年份 if (now_year > year) { return (now_year - year) + '年前' } else if (now_year === year) { // 比较月份 if (now_month > month) { return (now_month - month) + '个月前' } else if (now_month === month) { // 比较号数 if (now_day > day) { return (now_day - day) + '天前' } else if (now_day === day) { // 比较小时 if (now_hour > hour) { return (now_hour - hour) + '小时前' } else if (now_hour === hour) { // 比较分钟 if (now_minute > minute) { return (now_minute - minute) + '分钟前' } else if (now_minute === minute) { // 比较秒 if (now_seconds > seconds) { return (now_seconds - seconds) + '秒前' } else if (now_seconds === seconds) { return '刚刚' } else { return (seconds - now_seconds) + '秒后' } } else { return (minute - now_minute) + '分钟后' } } else { return (hour - now_hour) + '小时后' } } else { return (day - now_day) + '天后' } } else { return (month - now_month) + '个月后' } } else { return (year - now_year) + '年后' } } }, /** * 倒计时 * @param seconds {number} 倒计时秒数 * @param callback {function} */ countDown(seconds, callback) { let timer = null; timer = setInterval(function () { let day = 0, hour = 0, minute = 0, second = 0; if (seconds > 0) { day = Math.floor(seconds / (60 * 60 * 24)); hour = Math.floor(seconds / (60 * 60)) - (day * 24); minute = Math.floor(seconds / 60) - (day * 24 * 60) - (hour * 60); second = Math.floor(seconds) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60); } if (day <= 9) day = '0' + day; if (hour <= 9) hour = '0' + hour; if (minute <= 9) minute = '0' + minute; if (second <= 9) second = '0' + second; callback({ day, hour, minute, second }) seconds-- if (seconds < 0) clearInterval(timer) }, 1000); }, /** * 根据秒数返回时分秒 * * @param {number} num - 秒数 * @return {string} 返回时间表示 * @example getHMS(3610) // -> 1小时0分10秒 */ getHMS: function (num) { let str = ''; if (num > 3600) { str = Math.floor(num / 3600) + '小时' + Math.floor(num % 3600 / 60) + '分' + num % 60 + '秒' } else if (num > 60) { str = Math.floor(num / 60) + '分' + num % 60 + '秒' } else if (num === 60) { str = 60 + '秒' } else { str = num % 60 + '秒' } return str }, /** * 计算毫秒数 * @param num {number} 秒数 * @param pattern {string} day hour minute second * @return {number} */ countMillisecond: function (num, pattern) { switch (pattern) { case 'day': return num * 24 * 60 * 60 * 1000 case 'hour': return num * 60 * 60 * 1000 case 'minute': return num * 60 * 1000 case 'second': return num * 1000 default: return null } }, /** * 转换毫秒数 * @param num {number} * @param pattern {string} day hour minute second * @return {number} */ formatMillisecond: function (num, pattern) { switch (pattern) { case 'day': return num / 24 / 60 / 60 / 1000 case 'hour': return num / 60 / 60 / 1000 case 'minute': return num / 60 / 1000 case 'second': return num / 1000 default: return null } }, /** * 当天当前时间距离1970年1月1日的毫秒数 * @param date {date|string} * @return {number} */ getTime: function (date) { return this._transferDate(date).getTime(); }, /** * 当天当前时间的毫秒数 * @param date {date|string} * @return {number} */ getMilliseconds: function (date) { return this._transferDate(date).getMilliseconds(); }, /** * 当天当前时间的秒数 * @param date {date|string} * @return {string|number} */ getSeconds: function (date) { let seconds = this._transferDate(date).getSeconds(); return seconds > 9 ? seconds : "0" + seconds; }, /** * 当天当前时间的分钟数 * @param date {date|string} * @return {string|number} */ getMinutes: function (date) { let minutes = this._transferDate(date).getMinutes(); return minutes > 9 ? minutes : "0" + minutes; }, /** * 当天几点 * @param date {date|string} * @return {string|number} */ getHours: function (date) { let hour = this._transferDate(date).getHours(); return hour > 9 ? hour : "0" + hour; }, /** * 当天几点(12小时制时) * @param date {date|string} * @return {number} */ getHours12: function (date) { let hour = this._transferDate(date).getHours(); return hour % 12 === 0 ? 12 : hour % 12; }, /** * 当月多少号 * @param date {date|string} * @return {string|number} */ getDay: function (date) { let day = this._transferDate(date).getDate(); return day > 9 ? day : "0" + day; }, /** * 当月星期几 * @param date {date|string} * @return {number} */ getWeek: function (date) { return this._transferDate(date).getDay(); }, /** * 当年几月 * @param date {date|string} * @return {string|number} */ getMonth: function (date) { let month = this._transferDate(date).getMonth() + 1; return month > 9 ? month : "0" + month; }, /** * 当年第几季度 * @param date {date|string} * @return {number} */ getPeriod: function (date) { let month = this.getMonth(date) * 1; return Math.floor((month + 3) / 3); }, /** * 获取年份 * @param date {date|string} * @return {number} */ getYear: function (date) { return this._transferDate(date).getFullYear(); }, /** * 当年有多少天 * @param date {date|string} * @return {number} */ daysOfYear: function (date) { let firstDayYear = this.firstDayOfYear(date); let lastDayYear = this.lastDayOfYear(date); return Math.ceil(this.betweenDay(firstDayYear, lastDayYear)); }, /** * 当月有多少天 * @param date {date|string} * @return {number} */ daysOfMonth: function (date) { let currentMonth = this.firstDayOfMonth(date); let nextMonth = this.firstDayOfNextMonth(date); return this.betweenDay(currentMonth, nextMonth); }, /** * 当年中的第几天 * @param date {date|string} * @return {number} */ dayOfYear: function (date) { return Math.ceil(this.betweenDay(this.firstDayOfYear(date), date)); }, /** * 当月中的第几天 * @param date {date|string} * @return {number} */ dayOfMonth: function (date) { return Math.ceil(this.betweenDay(this.firstDayOfMonth(date), date)); }, /** * 当年的第几周 * @param date {date|string} * @return {number} */ weekOfYear: function (date) { let numdays = this.dayOfYear(date); return Math.ceil(numdays / 7); }, /** * 当月中的星期几 * @param date {date|string} * @return {number} */ weekOfMonth: function (date) { return this.getWeek(date); }, /** * 当年的第一天 * @param date {date|string} * @return {string} */ firstDayOfYear: function (date) { let year = this.getYear(date); let dateString = year + "-01-01 00:00:00"; return dateString; }, /** * 当年的最后一天 * @param date {date|string} * @return {string} */ lastDayOfYear: function (date) { let year = this.getYear(date); let dateString = year + "-12-01 00:00:00"; let endDay = this.daysOfMonth(dateString); return year + "-12-" + endDay + " 23:59:59"; }, /** * 当月的第一天 * @param date {date|string} * @return {string} */ firstDayOfMonth: function (date) { let year = this.getYear(date); let month = this.getMonth(date); let dateString = year + "-" + month + "-01 00:00:00"; return dateString; }, /** * 当月最后一天 * @param date {date|string} * @return {string} */ lastDayOfMonth: function (date) { let endDay = this.daysOfMonth(date); let year = this.getYear(date); let month = this.getMonth(date); return year + "-" + month + "-" + endDay + " 23:59:59"; }, /** * 当天的开始时间 * @param date {date|string} * @return {string} */ firstTimeOfDay: function (date) { let year = this.getYear(date); let month = this.getMonth(date); let dates = this.getDay(date); return year + "-" + month + "-" + dates + " 00:00:00"; }, /** * 当天的结束时间 * @param date {date|string} * @return {string} */ lastTimeOfDay: function (date) { let year = this.getYear(date); let month = this.getMonth(date); let dates = this.getDay(date); return year + "-" + month + "-" + dates + " 23:59:59"; }, /** * 当周的第一天 * @param date {date|string} * @return {string} */ firstDayOfWeek: function (date) { let week = this.getWeek(date); let d = this.minusDays(date, week); let year = this.getYear(d); let month = this.getMonth(d); let dates = this.getDay(d); return year + "-" + month + "-" + dates + " 00:00:00"; }, /** * 当周的最后一天 * @param date {date|string} * @return {string} */ lastDayOfWeek: function (date) { let week = 6 - this.getWeek(date); let d = this.minusDays(date, week); let year = this.getYear(d); let month = this.getMonth(d); let dates = this.getDay(d); return year + "-" + month + "-" + dates + " 23:59:59"; }, /** * 下个月的第一天 * @param date {date|string} * @return {string} */ firstDayOfNextMonth: function (date) { let year = this.getYear(date); let month = this.getMonth(date); month = month * 1 + 1; if (month > 12) { year = year + 1; month = month - 12; } month = month > 9 ? month : "0" + month; let dateString = year + "-" + month + "-01 00:00:00"; return dateString; }, /** * 获取两个时间间隔毫秒数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenMillSecond: function (date1, date2) { let stimes = this.getTime(this._transferDate(date1)); let etimes = this.getTime(this._transferDate(date2)); return etimes - stimes; }, /** * 获取两个时间间隔秒数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenSecond: function (date1, date2) { return Math.floor(this.betweenMillSecond(date1, date2) / 1000); }, /** * 获取两个时间间隔分钟数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenMinute: function (date1, date2) { return Math.floor(this.betweenMillSecond(date1, date2) / (1000 * 60)); }, /** * 获取两个时间间隔小时数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenHour: function (date1, date2) { return Math.floor(this.betweenMillSecond(date1, date2) / (1000 * 60 * 60)); }, /** * 获取两个时间间隔天数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenDay: function (date1, date2) { let d = { hour: 24, second: 60, mills: 3600, format: "YYYY-MM-dd", dateFormat: "YYYY-MM-dd HH:mm:ss" }; let times = this.betweenSecond(date1, date2); let hour = d.hour; let mills = d.mills; return Math.ceil(times / (mills * hour)); }, /** * 获取两个时间间隔月数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenMonth: function (date1, date2) { let times = this.betweenDay(date1, date2); return Math.floor(times / 30); }, /** * 获取两个时间间隔年数 * @param date1 {date|string} * @param date2 {date|string} * @return {number} */ betweenYear: function (date1, date2) { let times = this.betweenDay(date1, date2); return Math.floor(times / 365); }, /** * 在一个时间上加上多少毫秒 * @param date {date|string} * @param millisSeconds {number} * @return {string} */ plusMillisSeconds: function (date, millisSeconds) { let dateTime = this.getTime(date); let mintimes = millisSeconds; let rdate = dateTime * 1 + mintimes * 1; return this._format(new Date(rdate)); }, /** * 在一个时间上加上多少秒 * @param date {date|string} * @param seconds {number} * @return {string} */ plusSeconds: function (date, seconds) { let dateTime = this.getTime(date); let mintimes = seconds * 1000; let rdate = dateTime * 1 + mintimes * 1; return this._format(new Date(rdate)); }, /** * 在一个时间上加上多少分钟 * @param date {date|string} * @param minutes {number} * @return {string} */ plusMinutes: function (date, minutes) { let dateTime = this.getTime(date); let mintimes = minutes * 60 * 1000; let rdate = dateTime * 1 + mintimes * 1; return this._format(new Date(rdate)); }, /** * 在一个时间上加上小时数 * @param date {date|string} * @param hours {number} * @return {string} */ plusHours: function (date, hours) { let dateTime = this.getTime(date); let mintimes = hours * 60 * 60 * 1000; let rdate = dateTime + mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上加上天数 * @param date {date|string} * @param days {number} * @return {string} */ plusDays: function (date, days) { let dateTime = this.getTime(date); let mintimes = days * 60 * 60 * 1000 * 24; let rdate = dateTime * 1 + mintimes * 1; return this._format(new Date(rdate)); }, /** * 在一个时间上加上多少个月,这里是按照一个月30天来计算天数的 * @param date {date|string} * @param months {number} * @return {string} */ plusMonths: function (date, months) { let dateTime = this.getTime(date); let mintimes = months * 30 * 60 * 60 * 1000 * 24; let rdate = dateTime + mintimes * 1; return this._format(new Date(rdate)); }, /** * 在一个时间上加上多少年,这里是按照一年365天来计算天数的,isLoop是否闰年 * @param date {date|string} * @param years {number} * @param isLoop {boolean} * @return {string} */ plusYears: function (date, years, isLoop) { let dateTime = this.getTime(date); let day = 365; if (isLoop) day = 366; let mintimes = years * day * 60 * 60 * 1000 * 24; let rdate = dateTime + mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去多少毫秒 * @param date {date|string} * @param millisSeconds {number} * @return {string} */ minusMillisSeconds: function (date, millisSeconds) { let dateTime = this.getTime(date); let mintimes = millisSeconds * 1; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去多少秒 * @param date {date|string} * @param seconds {number} * @return {string} */ minusSeconds: function (date, seconds) { let dateTime = this.getTime(date); let mintimes = seconds * 1000; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去多少分钟 * @param date {date|string} * @param minutes {number} * @return {string} */ minusMinutes: function (date, minutes) { let dateTime = this.getTime(date); let mintimes = minutes * 60 * 1000; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去小时数 * @param date {date|string} * @param hours {number} * @return {string} */ minusHours: function (date, hours) { let dateTime = this.getTime(date); let mintimes = hours * 60 * 60 * 1000; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去天数 * @param date {date|string} * @param days {number} * @return {string} */ minusDays: function (date, days) { let dateTime = this.getTime(date); let mintimes = days * 60 * 60 * 1000 * 24; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去多少个月,这里是按照一个月30天来计算天数的 * @param date {date|string} * @param months {number} * @return {string} */ minusMonths: function (date, months) { let dateTime = this.getTime(date); let mintimes = months * 30 * 60 * 60 * 1000 * 24; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 在一个时间上减去多少年,这里是按照一年365天来计算天数的,isLoop是否闰年 * @param date {date|string} * @param years {number} * @param isLoop {boolean} * @return {string} */ minusYears: function (date, years, isLoop) { let dateTime = this.getTime(date); let day = 365; if (isLoop) day = 366; let mintimes = years * day * 60 * 60 * 1000 * 24; let rdate = dateTime - mintimes; return this._format(new Date(rdate)); }, /** * 判断两个时间是否一样 * @param date1 {date|string} * @param date2 {date|string} * @return {boolean} */ isEq: function (date1, date2) { let stime = this.getTime(this._transferDate(date1)); let etime = this.getTime(this._transferDate(date2)); return stime === etime ? true : false; }, /** * 判断date2是否晚于date1 * @param date1 {date|string} * @param date2 {date|string} * @return {boolean} */ isAfter: function (date1, date2) { let stime = this.getTime(this._transferDate(date1)); let etime = this.getTime(this._transferDate(date2)); return stime < etime ? true : false; }, /** * 判断date2是否早于date1 * @param date1 {date|string} * @param date2 {date|string} * @return {boolean} */ isBefore: function (date1, date2) { let stime = this.getTime(this._transferDate(date1)); let etime = this.getTime(this._transferDate(date2)); return stime > etime ? true : false; }, /*转换时间*/ _transferDate: function (date = new Date()) { if (typeof date === "string") { return new Date(date); } else if (!date) { return new Date() } else { return date; } }, /*时间格式化*/ _format: function (date) { return this.getYear(date) + "-" + this.getMonth(date) + "-" + this.getDay(date) + " " + this.getHours(date) + ":" + this.getMinutes(date) + ":" + this.getSeconds(date); }, getTimestamp: function () { return new Date().getTime(); }, // getTime: function(time) { // var date ; // if(time){ // date = new Date(time); // }else{ // date = new Date(); // } // var seperator1 = "-"; // var seperator2 = ":"; // var year=date.getFullYear() ; // var month = date.getMonth() + 1; // var day = date.getDate(); // var hour= date.getHours() ; // var minute=date.getMinutes(); // var second=date.getSeconds(); // var msecond=date.getMilliseconds() ; // if (month <= 9) { // month = "0" + month; // } // if (day <= 9) { // day = "0" + day; // } // if (hour <= 9) { // hour = "0" + hour; // } // if (minute <= 9) { // minute = "0" + minute; // } // if (second <= 9) { // second = "0" + second; // } // var curdate = year+ seperator1 + month + seperator1 + day+ " " +hour+ seperator2 + minute+ seperator2 +second ; // return curdate; // }, getMinute: function (time) { var date; if (time) { time = time.replace(/-/g, '/').replace(/T/g, ' ').replace(/.[\d]{3}Z/, ' '); time = time.substring(0, time.length > 19 ? 19 : time.length); date = new Date(time); } else { date = new Date(); } var seperator1 = "-"; var seperator2 = ":"; var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); var msecond = date.getMilliseconds(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } if (hour <= 9) { hour = "0" + hour; } if (minute <= 9) { minute = "0" + minute; } var curdate = year + "年" + month + "月" + day + "日 " + hour + seperator2 + minute; return curdate; }, getNow: function (time) { var date; if (time) { time = time.replace(/-/g, '/').replace(/T/g, ' ').replace(/.[\d]{3}Z/, ' '); time = time.substring(0, time.length > 19 ? 19 : time.length); date = new Date(time); } else { date = new Date(); } var seperator1 = "-"; var seperator2 = ":"; var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } if (hour <= 9) { hour = "0" + hour; } if (minute <= 9) { minute = "0" + minute; } if (second <= 9) { second = "0" + second; } var curdate = year + seperator1 + month + seperator1 + day + " " + hour + seperator2 + minute + seperator2 + second; return curdate; }, getYear: function () { return new Date().getFullYear(); }, getWeek: function () { var today = new Date(); var firstDay = new Date(today.getFullYear(), 0, 1); var dayOfWeek = firstDay.getDay(); var spendDay = 1; if (dayOfWeek != 0) { spendDay = 7 - dayOfWeek + 1; } firstDay = new Date(today.getFullYear(), 0, 1 + spendDay); var d = Math.ceil((today.valueOf() - firstDay.valueOf()) / 86400000); var result = Math.ceil(d / 7); return result + 1; }, getDate: function (time, seperator1) { if (!seperator1 && seperator1 != "") seperator1 = "-"; var date; if (time) { if (time instanceof String) { time = time.replace(/-/g, '/').replace(/T/g, ' ').replace(/.[\d]{3}Z/, ' '); time = time.substring(0, time.length > 19 ? 19 : time.length); } date = new Date(time); } else { date = new Date(); } var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); // var hour= date.getHours() ; // var minute=date.getMinutes(); // var second=date.getSeconds(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } var curdate = year + seperator1 + month + seperator1 + day; return curdate; }, getDateTime: function (time) { var date; if (time) { if (time instanceof String) { time = time.replace(/-/g, '/').replace(/T/g, ' ').replace(/.[\d]{3}Z/, ' '); time = time.substring(0, time.length > 19 ? 19 : time.length); } date = new Date(time); } else { date = new Date(); } var seperator1 = "-"; var seperator2 = ":"; var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } if (hour <= 9) { hour = "0" + hour; } if (minute <= 9) { minute = "0" + minute; } if (second <= 9) { second = "0" + second; } return year + seperator1 + month + seperator1 + day + " " + hour + seperator2 + minute + seperator2 + second; }, getTime: function (time) { var date; if (time) { date = new Date(time); } else { date = new Date(); } var seperator2 = ":"; var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); if (hour <= 9) { hour = "0" + hour; } if (minute <= 9) { minute = "0" + minute; } if (second <= 9) { second = "0" + second; } return hour + seperator2 + minute + seperator2 + second; }, getPreMonth: function (date) { var arr = date.split('-'); var year = arr[0]; //获取当前日期的年份 var month = arr[1]; //获取当前日期的月份 var day = arr[2]; //获取当前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //获取当前日期中月的天数 var year2 = year; var month2 = parseInt(month) - 1; if (month2 == 0) { year2 = parseInt(year2) - 1; month2 = 12; } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = '0' + month2; } var t2 = year2 + '-' + month2 + '-' + day2; return t2; }, /** * 获取下一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ getNextMonth: function (date) { var arr = date.split('-'); var year = arr[0]; //获取当前日期的年份 var month = arr[1]; //获取当前日期的月份 var day = arr[2]; //获取当前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //获取当前日期中的月的天数 var year2 = year; var month2 = parseInt(month) + 1; if (month2 == 13) { year2 = parseInt(year2) + 1; month2 = 1; } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = '0' + month2; } var t2 = year2 + '-' + month2 + '-' + day2; return t2; }, getDateRange: function (_year, _week) { var beginDate; var endDate; if (_year == null || _year == '' || _week == null || _week == '') { return ""; } _week = _week - 1; beginDate = getXDate(_year, _week, 5); endDate = getXDate(_year, (_week - 0 + 1), 4); return [beginDate, endDate]; }, }