const createUuid = () => {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) {
const e = 16 * Math.random() | 0;
return ('x' === t ? e : 3 & e | 8).toString(16)
})
}
function type(o) {
let result = 'unknown'
try {
result = Object.prototype.toString.call(o).slice(8, -1).toLowerCase()
} catch(err) { }
return result
}
function createCacheTime(second) {
return parseInt(
now() /
(1e3 * (Number(second) || 0.2))
).toString(16)
}
function updateByPath(origin, path, value) {
try {
const target = path.replace(/]/g, '').split(/\[|\./)
const length = target.length
let current = origin
for (let i = 0; i < length; i++) {
if (i === length - 1) {
current[target[i]] = value
} else {
current = current[target[i]]
}
}
} catch(err) { }
}
function compareVersion(version1, version2) {
let result = false
try {
const version1Arr = version1.split('.')
const version2Arr = version2.split('.')
if (version1Arr.length === version2Arr.length) {
const version1Fix = version1Arr.map((item) => item.padStart(4, 0)).join('')
const version2Fix = version2Arr.map((item) => item.padStart(4, 0)).join('')
result = parseInt(version1Fix) > parseInt(version2Fix)
} else {
throw '版本号长度不一致'
}
} catch (err) {
console.error(err)
}
return result
}
const HOUR_TO_MILL = 60 * 60 * 1e3
const now = () => +new Date
const getCurrentDayStartTime = () => {
const currentTime = now()
return currentTime - (currentTime % (HOUR_TO_MILL * 24)) - (HOUR_TO_MILL * 8)
}
const getCurrentDayEndTime = () => {
const currentTime = now()
return currentTime - (currentTime % (HOUR_TO_MILL * 24)) + (HOUR_TO_MILL * 16)
}
const getCurrentDayUsedMill = () => now() - getCurrentDayStartTime()
const getCurrentDayRemainMill = () => getCurrentDayEndTime() - now()
const getCurrentDayUsedSecond = () => {
const currentTime = now()
return (currentTime - (currentTime % 1e3) - getCurrentDayStartTime()) / 1e3
}
const getCurrentDayRemainSecond = () => {
const currentTime = now()
return (getCurrentDayEndTime() - (currentTime - currentTime % 1e3)) / 1e3
}