var barcode = require("./barcode"); var qrcode = require("./qrcode"); const extConfig = tt.getExtConfigSync ? tt.getExtConfigSync() : {} function convertUTCTimeToLocalTime(UTCDateString) { if (!UTCDateString) { return '-'; } function formatFunc(str) { //格式化显示 return str > 9 ? str : '0' + str } var date2 = new Date(UTCDateString); //这步是关键 var year = date2.getFullYear(); var mon = formatFunc(date2.getMonth() + 1); var day = formatFunc(date2.getDate()); var hour = date2.getHours(); var noon = hour >= 12 ? 'PM' : 'AM'; hour = hour >= 24 ? hour - 24 : hour; hour = formatFunc(hour); var min = formatFunc(date2.getMinutes()); var dateStr = ' ' + hour + ':' + min; return dateStr; } // function fmtDate(date) { // var dateee = new Date(date).toJSON(); // return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''); // } function moodsText(Num) { //人气值处理 Num人气值 返回字符串 处理到万位 let sing = "" if (Num > 10000) { sing = (Num / 10000).toFixed(2) + "w" } else { sing = Num } return sing } const formatTime = (date, fmt) => { try { if (!date) { return date; } if (typeof date === 'string' && date.length === 13) { date = Number(date); } if (typeof date == "number") { date = new Date(date); } 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; } catch (error) { return date; } }; const formatNumber = n => { n = n.toString(); return n[1] ? n : "0" + n; }; function convert_length(length) { return Math.round((tt.getSystemInfoSync().windowWidth * length) / 750); } function barc(id, code, width, height) { barcode.code128( tt.createCanvasContext(id), code, convert_length(width), convert_length(height) ); } function qrc(id, code, width, height) { qrcode.api.draw(code, { ctx: tt.createCanvasContext(id), width: convert_length(width), height: convert_length(height) }); } function fmtDate(obj) { if (typeof obj === 'string' && obj.length === 13) { obj = Number(obj); } var date = new Date(obj); var y = 1900 + date.getYear(); var m = "0" + (date.getMonth() + 1); var d = "0" + date.getDate(); return ( y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) ); } /** * @description 根据时间戳获取时间 * @param {*} timestamp 必传,number类型,时间戳数据(10位及以下,10位至13位);若不传,则返回:“无时间戳” * @param {*} format 选传,string类型,提供以下时间格式:YYYY-MM-DD hh:mm:ss、YYYY/MM/DD hh:mm:ss、YYYY.MM.DD hh:mm:ss、YYYY MM DD hh:mm:ss、YYYY年MM月DD日 hh:mm:ss、YYYY-MM-DD、YYYY/MM/DD、YYYY.MM.DD、YYYY MM DD、YYYY年MM月DD日、hh:mm:ss、hh:mm;若不传,则默认为:YYYY-MM-DD * @returns 根据要求的时间格式 * @version V 1.0, Created by YWQ, 2022.10.20 */ function timestampToTime(timestamp, format) { if (!timestamp) return false //时间戳为10位需*1000,时间戳为13位不需乘1000 const length = timestamp ? timestamp.length : '' if (length <= 10) { var date = new Date(timestamp * 1000) } else { var date = new Date(timestamp) } let Y = String(date.getFullYear()) let M = String(date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) let D = String(date.getDate() + 1 < 10 ? '0' + (date.getDate()) : date.getDate()) let h = String(date.getHours() + 1 < 10 ? '0' + (date.getHours()) : date.getHours()) let m = String(date.getMinutes() + 1 < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) let s = String(date.getSeconds() + 1 < 10 ? '0' + (date.getSeconds()) : date.getSeconds()) // return Y + M + D + h + m + s if (format == "YYYY-MM-DD hh:mm:ss") { return Y + "-" + M + "-" + D + " " + h + ":" + m + ":" + s } else if (format == "YYYY/MM/DD hh:mm:ss") { return Y + "/" + M + "/" + D + " " + h + ":" + m + ":" + s } else if (format == "YYYY.MM.DD hh:mm:ss") { return Y + "." + M + "." + D + " " + h + ":" + m + ":" + s } else if (format == "YYYY MM DD hh:mm:ss") { return Y + " " + M + " " + D + " " + h + ":" + m + ":" + s } else if (format == "YYYY年MM月DD日 hh:mm:ss") { return Y + "年" + M + "月" + D + "日" + " " + h + ":" + m + ":" + s } else if (format == "YYYY-MM-DD") { return Y + "-" + M + "-" + D } else if (format == "YYYY/MM/DD") { return Y + "/" + M + "/" + D } else if (format == "YYYY.MM.DD") { return Y + "." + M + "." + D } else if (format == "YYYY MM DD") { return Y + " " + M + " " + D } else if (format == "YYYY年MM月DD日") { return Y + "年" + M + "月" + D + "日" } else if (format == "hh:mm:ss") { return h + ":" + m + ":" + s } else if (format == "hh:mm") { return h + ":" + m } else { return Y + "-" + M + "-" + D } } //计算下单的时间与现在的时间的 function timechuo(startTime) { var s1 = new Date(startTime.replace(/-/g, "/")); var s2 = new Date(); var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000); var year = Math.floor(runTime / 86400 / 365); var runTime = runTime % (86400 * 365); var month = Math.floor(runTime / 86400 / 30); var runTime = runTime % (86400 * 30); var day = Math.floor(runTime / 86400); var runTime = runTime % 86400; var hour = Math.floor(runTime / 3600); var runTime = runTime % 3600; var minute = Math.floor(runTime / 60); var runTime = runTime % 60; var second = runTime; if (day && !year && !month) { return (day + '天' + hour + "小时" + minute + "分钟") } else if (month && !year) { return ((month * 30 + day) + '天' + hour + "小时" + minute + "分钟") } else if (year) { return ((year * 365 + month * 30 + day) + '天' + hour + "小时" + minute + "分钟") } else { return (hour + "小时" + minute + "分钟") } } //计算时间差 function timecha(endTime, startTime) { var s1 = new Date(endTime.replace(/-/g, "/")); var s2 = new Date(startTime.replace(/-/g, "/")); var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000); var year = Math.floor(runTime / 86400 / 365); var runTime = runTime % (86400 * 365); var month = Math.floor(runTime / 86400 / 30); var runTime = runTime % (86400 * 30); var day = Math.floor(runTime / 86400); var runTime = runTime % 86400; var hour = Math.floor(runTime / 3600); var runTime = runTime % 3600; var minute = Math.floor(runTime / 60); var runTime = runTime % 60; var second = runTime; return (month + "月" + day + "天" + hour + "小时" + minute + "分钟") } function isJSON(str) { if (typeof str == 'string') { console.log("string") try { var obj = JSON.parse(str); if (typeof obj == 'object' && obj) { return true; } else { return false; } } catch (e) { console.log(e); tt.showToast({ title: '请扫描正确的二维码', icon: 'none', duration: 1300 }) } } else { tt.showToast({ title: '请扫描正确的二维码', icon: 'none', duration: 1300 }) } } module.exports = { formatTime: formatTime, barcode: barc, qrcode: qrc, isJSON: isJSON, fmtDate: fmtDate, timechuo: timechuo, timecha: timecha, moodsText: moodsText, convertUTCTimeToLocalTime: convertUTCTimeToLocalTime, timestampToTime: timestampToTime };