// 时间日期格式化 const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } // 几天前时间转换 function getDateDiff(dateTimeStamp) { var result; var minute = 1000 * 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var month = day * 30; var now = new Date().getTime(); var diffValue = now - dateTimeStamp; if (diffValue < 0) { return; } // 数值补0方法 var zero = function(value) { if (value < 10) { return '0' + value; } return value; }; var date = new Date(dateTimeStamp); // 今年时间 var CurrentDateTime = zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日'; // 过了一年时间显示 var dateTimeed = date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日'; // console.log('---------------') // console.log(minute) // console.log(hour) // console.log(day) // console.log(halfamonth) // console.log(month) // console.log(now) // console.log(diffValue) // console.log('-----------------') var monthC = diffValue / month; var weekC = diffValue / (7 * day); var dayC = diffValue / day; var hourC = diffValue / hour; var minC = diffValue / minute; // console.log('。。。。。。。。') // console.log(monthC) // console.log(weekC) // console.log(dayC) // console.log(hourC) // console.log(minC) // console.log('。。。。。。。。。') if(monthC > 12){ result = dateTimeed; } else if (weekC >= 1) { result = "" + parseInt(weekC) + "周前"; } else if (dayC >= 1 && dayC < 2) { result = '昨天'; }else if (dayC >= 2 && dayC < 3) { result = '前天'; } else if (dayC > 3) { result = CurrentDateTime; } else if (hourC >= 1) { result = "" + parseInt(hourC) + "小时前"; } else if (minC >= 1) { result = "" + parseInt(minC) + "分钟前"; } else { result = "刚刚"; } return result; }; function formatDate(dateTime, formatStr) { var converted = Date.parse(dateTime) var thisDateTime = new Date(converted) if (thisDateTime) { let str = formatStr const Week = ['日', '一', '二', '三', '四', '五', '六'] str = str.replace(/yyyy|YYYY/, thisDateTime.getFullYear()) str = str.replace(/yy|YY/, (thisDateTime.getYear() % 100) > 9 ? (thisDateTime.getYear() % 100).toString() : '0' + (thisDateTime.getYear() % 100)) str = str.replace(/MM/, (thisDateTime.getMonth() + 1) > 9 ? (thisDateTime.getMonth() + 1).toString() : '0' + (thisDateTime.getMonth() + 1)) str = str.replace(/M/g, thisDateTime.getMonth()) str = str.replace(/w|W/g, Week[thisDateTime.getDay()]) str = str.replace(/dd|DD/, thisDateTime.getDate() > 9 ? thisDateTime.getDate().toString() : '0' + thisDateTime.getDate()) str = str.replace(/d|D/g, thisDateTime.getDate()) str = str.replace(/hh|HH/, thisDateTime.getHours() > 9 ? thisDateTime.getHours().toString() : '0' + thisDateTime.getHours()) str = str.replace(/h|H/g, thisDateTime.getHours()) str = str.replace(/mm/, thisDateTime.getMinutes() > 9 ? thisDateTime.getMinutes().toString() : '0' + thisDateTime.getMinutes()) str = str.replace(/m/g, thisDateTime.getMinutes()) str = str.replace(/ss|SS/, thisDateTime.getSeconds() > 9 ? thisDateTime.getSeconds().toString() : '0' + thisDateTime.getSeconds()) str = str.replace(/s|S/g, thisDateTime.getSeconds()) return str } else { return formatStr } } module.exports = { formatTime, getDateDiff, formatDate }