import dayTs from './Date'; enum timeType { fulltime = 1 } /** * 获取当前时间 * @param type * @returns */ export function GetCurrentTime(type?: timeType): string { if (type === 1) { return dayTs().format("YYYYMMDDHHmmss") } else { return dayTs().format("YYYY-MM-DD HH:mm:ss") } } /** * 是否是指定天数之前 * @param date * @param days * @returns */ export function IsDaysAgo(date: string | number | Date, days: number = 2): boolean { const today = dayTs(); // 当前日期 const target = dayTs(date).format("YYYY-MM-DD HH:mm:ss.SSS"); // 需要判断的日期 // 计算两个日期之间的差异天数 const diffDays = today.diff(target, 'day'); // 如果差异天数大于等于指定天数,则返回 true return diffDays >= days; } /** * 字符串转字节数组 * @param str * @returns */ export function StringToBytes(str: string): Uint8Array { const bytes = new Uint8Array(str.length); for (let i = 0; i < str.length; i++) { bytes[i] = str.charCodeAt(i); } return bytes; } /** * 字符串转ASCII码 */ export function StringToASCII(str: string): number[] { const arr: number[] = []; for (let i = 0; i < str.length; i++) { arr.push(str.charCodeAt(i)); } return arr; } /** * 数组转字节 */ export function ArrayToByteArray(array: number[]): Uint8Array { const buf = new ArrayBuffer(array.length); const view = new Uint8Array(buf); for (let i = 0; i < array.length; i++) { view[i] = array[i] & 0xFF; } return view; } /** * 数字转字节数组 * @param number 要转换的数字 * @param len 字节数 * @returns 返回字节数组 */ export function NumberToByteArray(number: number | string, len: number): number[] { let str = Math.floor(Number(number)).toString(2); if (str.length > len) { console.log('数据长度不对~~'); return []; } const byteString = FillZero(str, len); const arrBytes: number[] = []; for (let i = byteString.length; i > 0; ) { let j = i - 8; if (j < 0) { j = 0; } const s = byteString.slice(j, i); const v = parseInt(s, 2); arrBytes.push(v); i -= 8; } return arrBytes; } export function FillZero(str: string | number, len: number): string { str = str.toString(); if (str.length >= len || len <= 0) { return str; } const zeroStr = '0'.repeat(len - str.length); return zeroStr + str; }