2025-04-10 10:28:07 +08:00
|
|
|
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 返回字节数组
|
|
|
|
|
*/
|
2025-06-17 09:06:18 +08:00
|
|
|
export function NumberToByteArray(number: number | string, len: number): number[] {
|
|
|
|
|
let str = Math.floor(Number(number)).toString(2);
|
2025-04-10 10:28:07 +08:00
|
|
|
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;
|
|
|
|
|
}
|