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;
 | |
| } |