comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
86 lines (85 loc) • 2.1 kB
JavaScript
function debounce(func, interval = 200) {
if (typeof func !== "function") {
throw new TypeError("need a function arguments");
}
let t = null;
return function(...args) {
clearTimeout(t);
t = setTimeout(() => {
func.apply(this, args);
}, interval);
};
}
function throttle(func, interval = 500) {
if (typeof func !== "function") {
throw new TypeError("need a function arguments");
}
let t = null;
return function(...args) {
if (!t) {
t = setTimeout(function() {
func.apply(this, args);
clearTimeout(t);
t = null;
}, interval);
}
};
}
const repairZero = (value) => {
value = Number(value);
if (isNaN(value)) {
throw new Error("Value must be a number or a numeric string");
}
return (value < 10 ? "0" + value : value).toString();
};
const formatDate = (timestamp, fmt) => {
if (!timestamp || isNaN(new Date(timestamp).getTime())) {
return "";
}
try {
var date = new Date(timestamp);
if (!fmt) fmt = "yyyy-MM-dd hh:mm:ss";
var o = {
"M+": date.getMonth() + 1,
//月份
"d+": date.getDate(),
//日
"h+": date.getHours(),
//小时
"m+": date.getMinutes(),
//分
"s+": date.getSeconds(),
//秒
"q+": Math.floor((date.getMonth() + 3) / 3),
//季度
S: date.getMilliseconds()
//毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
return fmt;
} catch (e) {
return "";
}
};
const getCssHeight = (height) => {
if (!height) return void 0;
if (isNaN(Number(height))) {
return height;
} else {
return height + "px";
}
};
const randomColor = () => {
return "#" + Math.floor(Math.random() * 16777215).toString(16).padEnd(6, "0");
};
export {
debounce,
formatDate,
getCssHeight,
randomColor,
repairZero,
throttle
};