import systemTime from '@ohos.systemDateTime'; import { timeSynchronization } from '../../api'; export function isSevenDaysAgo(date, days = 2) { const today = new Date(); // 当前日期 const target = new Date(date); // 需要判断的日期 console.info("listFile succeed1", JSON.stringify(target)); const diff = today.getTime() - target.getTime(); // 计算两个日期之间的毫秒数差异 const diffDays = diff / (1000 * 60 * 60 * 24); // 将毫秒转换为天数 console.info("listFile succeed2", JSON.stringify(diffDays)); // 如果差异天数正好是2,则原日期是当前日期的前2天 console.log('diffDays', diffDays, days) return diffDays >= (Number(days)); } // export async function writeLog(path,param){ // return // const fileUtil = new FileUtil(globalThis.context) // const date=dateFormat(new Date).split(' ')[0] // const folderPath = await fileUtil.initFolder(`/${path}/${date}`); // fileUtil.editFile(`${folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`) // } ///**时间格式化*/ //export function dateFormat(fmt, date) { // var ret; // const opt = { // "y+": date.getFullYear().toString(), // 年 // "m+": (date.getMonth() + 1).toString(), // 月 // "d+": date.getDate().toString(), // 日 // "H+": date.getHours().toString(), // 时 // "M+": date.getMinutes().toString(), // 分 // "S+": date.getSeconds().toString() // 秒 // // 有其他格式化字符需求可以继续添加,必须转化成字符串 // }; // for (var k in opt) { // ret = new RegExp("(" + k + ")").exec(fmt); // if (ret) { // fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) // }; // }; // return fmt; //} /** * 日期不足两位补 0 * * @param {string} value - 数据值 * @return {string} - 日期不足两位补 0 */ function fill(value: number) { return (value > 9 ? '' : '0') + value; } export function dateFormat(t) { let year = t.getFullYear() let month = t.getMonth() + 1 let day = t.getDate() let hours = t.getHours() let minutes = t.getMinutes() let seconds = t.getSeconds() return year + "-" + fill(month) + "-" + fill(day) + " " + fill(hours) + ":" + fill(minutes) + ":" + fill(seconds); } export function dateVersionFormat(t) { let year = t.getFullYear() let month = t.getMonth() + 1 let day = t.getDate() let hours = t.getHours() let minutes = t.getMinutes() let seconds = t.getSeconds() return year + "." + fill(month) + "." + fill(day) + "." + fill(hours); } //同步时时间 // export async function timeSynchronize() { // let date = new Date(); // console.info('jiangsong1:timeSynchronization begin '); // // let params = { // time: dateFormat(date), // deviceNo: AppStorage.get('deviceNo'), // version: AppStorage.get('baseInfo').version, // judgeVersion: AppStorage.get('baseInfo').judgeVersion // } // let res: any = await timeSynchronization(params) // res = res.timeSynchronizationRsp; // AppStorage.setOrCreate('timeInfo', res.body) // // // return res; // } // export async function setCurrentTime(): Promise { // let res = await timeSynchronize(); // let currentTime = res.head.time; // let times = new Date(currentTime).getTime(); // console.log('jiangsong:times==' + times); // try { // await systemTime.setTime(times); // // systemTime.setTime(times).then(() => { // // console.info(`Succeeded in setting time.`); // // }).catch((error) => { // // console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`); // // }); // } catch (e) { // console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); // } // } enum timeType { fulltime = 1 } //获取当前时间并转化 export async function getCurrentTime(type?: timeType): Promise { const date = await systemTime.getDate(); const year = date.getFullYear(); let month = date.getMonth() + 1; month = month < 10 ? '0' + month : month; let dates = date.getDate(); dates = dates < 10 ? '0' + dates : dates; let h = date.getHours(); h = h < 10 ? '0' + h : h; let m = date.getMinutes(); m = m < 10 ? '0' + m : m; let s = date.getSeconds(); s = s < 10 ? '0' + s : s; if (type === 1) { return `${year}${month}${dates}${h}${m}${s}` } else { return `${year}-${month}-${dates} ${h}:${m}:${s}` } } //获取时分秒毫秒 export async function getCurrentHourTime(): Promise { const date = await systemTime.getDate(); const year = date.getFullYear(); let month = date.getMonth() + 1; let h = date.getHours(); h = h < 10 ? '0' + h : h; let m = date.getMinutes(); m = m < 10 ? '0' + m : m; let s = date.getSeconds(); s = s < 10 ? '0' + s : s; let ss = date.getMilliseconds(); let nowSS = '' if (ss < 10) { nowSS = '00' + ss } if (ss >= 10 && ss < 100) { nowSS = '0' + s } return `${h}${m}${s}${nowSS || ss}` } //时间戳转日期 export function formatTime(time: number): string { const h = parseInt(time / 3600) const minute = parseInt(time / 60 % 60) const second = Math.ceil(time % 60) const hours = h < 10 ? '0' + h : h const formatSecond = second > 59 ? 59 : second return `${hours > 0 ? `${hours}:` : `${hours}:`}${minute < 10 ? '0' + minute : minute}:${formatSecond < 10 ? '0' + formatSecond : formatSecond}` } // 根据指定个数分割数组 export function chunkArr(arr, size: number) { //判断如果不是数组(就没有length),或者size没有传值,size小于1,就返回空数组 if (!arr.length || !size || size < 1) { return [] } let [start, end, result] = [null, null, []] for (let i = 0; i < Math.ceil(arr.length / size); i++) { start = i * size end = start + size result.push(arr.slice(start, end)) } return result } //对象深拷贝 export function deepClone(target) { // 如果是对象,且不是原始值null if (typeof target === 'object' && target !== 'null') { // 创建容器 const result = Array.isArray(target) ? [] : {}; const keys = Object.keys(target); //注解二 // Object.keys()会过滤掉原型链上的属性 keys.forEach(key => { result[key] = deepClone(target[key]) }) return result; } // 如果是原始值,则直接返回 return target; } export function stringToASC(str) { const tempStr = str + ''; const strArr = tempStr.split(''); return strArr.map(str => str.charCodeAt()) } export function fillZero(str, len) { str = str + ''; if (str.length > len || !len) { return str } let num = len - str.length; let zeroStr = ''; for (var i = 0; i < num; i++) { zeroStr = zeroStr + '0' } return zeroStr + str; } // 字符串转字节 export function string2Bytes(number, len) { let str = (Math.floor(+number)).toString(2); if (str.length > len) { console.log('数据长度不对~~'); return } var byteString = fillZero(str, len); var arrBytes = new Array(); for (var i = byteString.length; i > 0; ) { let j = i - 8; if (j < 0) { j = 0 } var s = byteString.slice(j, i); var v = parseInt(s, 2); arrBytes.push(v); i = i - 8 } return arrBytes; } //数组数据转字节 export function Array2Byte(array) { var buf = new ArrayBuffer(array.length); var view = new Uint8Array(buf); for (var i = 0; i != array.length; ++i) { view[i] = array[i] & 0xFF; } return view; } //经纬度转换 export function convertGpsCoord2(num) { const tempNum = Math.floor(num); const du = Math.floor(tempNum / 100); const fen = tempNum % 100 + num - tempNum; return du + fen / 60 } export function debounce(fn, delay) { // 利用闭包定义定时器id变量存储 let timer = null; return () => { // 如果有值就清除定时器,重新计时 if (timer) { clearTimeout(timer) } timer = setTimeout(fn, delay); } }