小程序过滤器(wxs)-格式化时间
小程序利用过滤wxs格式化时间
var comm = { /** * 获取当前时间或格式化时间戳或获取时间戳, * @param str 格式化时间数据,不传默认为getDate() * @param ostyle 返回时间风格:'-'或'/'或'zh',不传默认为'-' */ getFormatDate: function (str, ostyle) { var oDate = getDate(); if (str) { //当str存在时为格式化时间戳 if (typeof str === "string") { if (str.indexOf("T") > -1) { str = comm.getdisposeTime(str); // 2019-04-07T16:00:00.000+0000格式 } else if (str.indexOf(".") > -1) { str = str.substring(0, str.indexOf(".")); // 有些日期接口返回带有.0。 } else if (comm.isDatetime(str) && str.length > 10) { //2021-01-01 12:00:00 // str += ' 00:00:00'; } else if (comm.strDate(str) && (str.length > 8 && str.length <= 10)) { //2021-01-01 str += ' 00:00:00'; } else if (comm.isTime(str) && (str.length <= 8)) { //12:00:00 var strYear = oDate.getFullYear(), strMonth = oDate.getMonth() + 1, strDay = oDate.getDate(); str = strYear + '-' + comm.getNow(strMonth) + '-' + comm.getNow(strDay) + ' ' + str; } // 解决IOS上无法从str parse 到Date类型问题 str = str.replace(getRegExp('-', 'g'), '/'); } oDate = getDate(str); } var oYear = oDate.getFullYear(), oMonth = oDate.getMonth() + 1, oDay = oDate.getDate(), oHour = oDate.getHours(), oMin = oDate.getMinutes(), oSen = oDate.getSeconds(); return comm.getDataTimeInfo(str, oYear, oMonth, oDay, oHour, oMin, oSen, ostyle); }, /** * 获取当前时间或格式化时间戳或获取时间戳, * @param str 格式化时间数据,不传默认为getDate() * @param year 年 * @param month 月 * @param day 日 * @param h 时 * @param m 分 * @param s 秒 * @param style 返回时间风格:'-'或'/'或'zh',不传默认为'-' * @returns {string} obj = { oYmdHms:年月日时分秒, oDateTime: 年-月-日 时:分:秒, nowToday: 年-月-日 00:00:00, nowTodays: 年-月-日 23:59:59, oDateHms: 年-月-日 时:分:00, oDateHm: 年-月-日 时:分, oMdHm: 月-日 时:分, oDate: 年-月-日, oDateYm: 年-月, oTime: 时:分:秒, oHm: 时:分, xtstNowToday:,当天23:59时时间戳 xtstNowNextDay:,当天0點时时间戳 xtstNowDate:,當前時間戳 xtstTime:,需要格式化时间戳的时间 } */ getDataTimeInfo: function (str, year, month, day, h, m, s, style) { var ostyle = '-', ostyle1 = '-', ostyle2 = ''; if (style == '/') { ostyle = '/'; ostyle1 = '/'; ostyle2 = ''; } else if (style == 'zh') { ostyle = '年'; ostyle1 = '月'; ostyle2 = '日'; } var obj = { oYmdHms: year + '' + comm.getNow(month) + '' + comm.getNow(day) + '' + comm.getNow(h) + '' + comm.getNow( m) + '' + comm.getNow(s), oYmdHm: year + '' + comm.getNow(month) + '' + comm.getNow(day) + '' + comm.getNow(h) + '' + comm.getNow( m), oDateTime: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + comm.getNow(h) + ':' + comm.getNow(m) + ':' + comm.getNow(s), nowToday: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + '00:00:00', nowTodays: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + '23:59:59', oDateHms: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + comm.getNow(h) + ':' + comm.getNow(m) + ':00', oDateHm: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + comm.getNow(h) + ':' + comm.getNow(m), oDate: year + ostyle + comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2, oMdHm: comm.getNow(month) + ostyle1 + comm.getNow(day) + ostyle2 + ' ' + comm.getNow(h) + ':' + comm.getNow(m), oDateYm: year + ostyle + comm.getNow(month) + ostyle1, oTime: comm.getNow(h) + ':' + comm.getNow(m) + ':' + comm.getNow(s), oHm: comm.getNow(h) + ':' + comm.getNow(m), xtstNowToday: (getDate(getDate(getDate().getTime() - 24 * 60 * 60 * 1000).setHours(23, 59, 59, 999))).getTime(), xtstNowNextDay: (getDate(getDate(getDate().getTime() - 24 * 60 * 60 * 1000).setHours(0, 0, 0, 0))).getTime(), xtstNowDate: (getDate()).valueOf(), xtstTime: getDate(str).getTime() } return obj; }, /** * 判断是否小于10,若是则加0 * @param s 时间加 0 * @returns {string} */ getNow: function (s) { return s < 10 ? '0' + s : s; }, /** * * @param date 传递过来的时间字符串 特殊处理格式 2019-04-07T16:00:00.000+0000 */ getdisposeTime: function (date) { var dateee = getDate(date).toJSON(); var date1 = getDate(+getDate(dateee) + 8 * 3600 * 1000).toISOString().replace(getRegExp('T', 'g'), " ").replace(getRegExp('\.[\d]{3}Z'), ''); return date1; }, /** * 判断短时间格式 12:00:00 * @param str 时间 * @returns Boolean */ isTime: function (str) { var a = str.match(getRegExp('(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})', 'g')); if (a == null) { // alert('输入的参数不是时间格式'); return false; } if (a[1] > 24 || a[3] > 60 || a[4] > 60) { // alert("时间格式不对"); return false } return true; }, /** * 判断短日期格式 2021-01-01 * @param str 时间 * @returns Boolean */ strDate: function (str) { var r = str.match(getRegExp('(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})', 'g')); if (r == null) return false; var d = getDate(r[1], r[3] - 1, r[4]); return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]); }, /** * 判断日期格式 2021-01-01 12:00:00 * @param str 时间 * @returns Boolean */ isDatetime: function (date) { var regex = getRegExp('(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]', 'g'); if (!regex.test(date)) { // alert("格式不正确!请输入正确的时间格式,如:2010-07-07 09:12:00"); return false; } // alert("格式正确!"); return true; }, /** * @param str 传递过来的时间字符串 特殊处理格式 2021-12-30.18.1.49.785000000 */ getSpecialDate: function (str, ostyle) { if (str) { //返回格式有改变的处理 2021-12-30 11:33:04.448 if (str.indexOf(' ') != -1 && str.indexOf(':') != -1) { var getnew = str.substring(0, 16); var finaltime = getnew.replace(getRegExp('-', 'g'), "/"); return finaltime; } var getNewtime = str.replace(getRegExp(' ', 'g'), ""); var getDateArr = getNewtime.split('.'); var getDateStr = getDateArr[0] + ' '; if (getDateArr[1]) { getDateStr += comm.getNow(getDateArr[1]); } if (getDateArr[2]) { getDateStr += ':' + comm.getNow(getDateArr[2]); } // if (getDateArr[3]) { // getDateStr += ':'+comm.getNow(getDateArr[3]) // } var finaltime = getDateStr.replace(getRegExp('-', 'g'), "/"); if (ostyle) { return comm.getFormatDate(finaltime, ostyle); } else { return finaltime; } } return ''; }, }