106 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			106 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | 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, len: number): number[]  { | ||
|  |   let str = Math.floor(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; | ||
|  | } |