let weekArray = new Array("日", "一", "二", "三", "四", "五", "六").map(x=>`星期${x}`); //格式化日期 const formatDate = (date = new Date()) => { const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() return [year, month, day].map(formatNumber).join('-') } function formatTime(time) { if (typeof time !== 'number' || time < 0) { return time } const hour = parseInt(time / 3600, 10) time %= 3600 const minute = parseInt(time / 60, 10) time = parseInt(time % 60, 10) const second = time return ([hour, minute, second]).map(function (n) { n = n.toString() return n[1] ? n : '0' + n }).join(':') } function formatDateTime(date, withMs = false) { function formatLeadingZeroNumber(n, digitNum = 2) { n = n.toString() const needNum = Math.max(digitNum - n.length, 0) return new Array(needNum).fill(0).join('') + n } 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() const ms = date.getMilliseconds() let ret = [year, month, day].map(value => formatLeadingZeroNumber(value, 2)).join('-') + ' ' + [hour, minute, second].map(value => formatLeadingZeroNumber(value, 2)).join(':') if (withMs) { ret += '.' + formatLeadingZeroNumber(ms, 3) } return ret } function dateLaters(days, todate= new Date()) { var dateArry = []; for (var i = 0; i < days; i++) { var dateObj = dateLater(todate, i); dateArry.push(dateObj) } return dateArry; } function dateLater(dates, later=0) { let date = new Date(dates); date.setDate(date.getDate() + later); let day = date.getDay(); let yearDate = date.getFullYear(); let month = ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1); let dayFormate = (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate()); return [yearDate + '-' + month + '-' + dayFormate, weekArray[day]]; } function formatLocation(longitude, latitude) { if (typeof longitude === 'string' && typeof latitude === 'string') { longitude = parseFloat(longitude) latitude = parseFloat(latitude) } longitude = longitude.toFixed(2) latitude = latitude.toFixed(2) return { longitude: longitude.toString().split('.'), latitude: latitude.toString().split('.') } } module.exports = { formatDate, formatTime, formatDateTime, dateLaters, dateLater, formatLocation }