/** * Created by weicong on 2017/12/27. */ /** * 时间格式转换 * 用法:DateFormat(date) DateFormat(fmt) DateFormat() DateFormat(date,fmt) * @param date 时间 * @param fmt 时间格式 * @returns 指定格式的时间字符串 */ export default DateFormat = function (date, fmt) { if (arguments.length == 1) { if ((typeof date == 'string') && date.constructor == String) fmt = date; } date = (typeof date == 'object') && date.constructor == Date ? date : new Date(); fmt = fmt || 'yyyy-MM-dd'; var 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(fmt)) { fmt = fmt.replace(RegExp.$1, (date.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; } /** * 比较起始时间不超过一周 * @param fir 开始时间 * @param sec 结束时间 * @returns {boolean} */ export function isSameWeek(beg, end) { let rs = getInterval(beg, end); if (rs == undefined || rs == null) return false; return rs <= 7; } /** * 计算结束时间和开始时间之间的间隔, * @param beg 开始时间 * @param end 结束时间 * @returns {null} */ export function getInterval(beg, end) { var begd = (typeof beg == 'object') && beg.constructor == Date ? beg : new Date(beg); var endd = (typeof end == 'object') && end.constructor == Date ? end : new Date(end); var oneDayTime = 1000 * 60 * 60 * 24; var begtime = begd.getTime(); var endtime = endd.getTime(); if (begtime > endtime) { return null; } return parseInt((endtime - begtime) / oneDayTime + 1); } /** * 加减天数函数 * @param date 当前时间 * @param days 传入正数表示增加多少天;传入负数表示在当前时间减去多少天 * @param fmt 时间格式 * @returns {string} 返回计算后的指定时间格式字符串 */ export function addDate(date, days, fmt) { var d = (typeof date == 'object') && date.constructor == Date ? date : new Date(date); fmt = fmt || 'yyyy-MM-dd'; d.setDate(d.getDate() + days); var nd = DateFormat(d, fmt); return nd; }