130 lines
4.4 KiB
JavaScript
130 lines
4.4 KiB
JavaScript
|
const CryptoJS = require("./AES.js").CryptoJS; //引用AES源码js
|
|||
|
const DateFormat = function (date, fmt) { //author: meizz
|
|||
|
var o = {
|
|||
|
"M+": new Date(date).getMonth() + 1, //月份
|
|||
|
"d+": new Date(date).getDate(), //日
|
|||
|
"h+": new Date(date).getHours(), //小时
|
|||
|
"m+": new Date(date).getMinutes(), //分
|
|||
|
"s+": new Date(date).getSeconds(), //秒
|
|||
|
"q+": Math.floor((new Date(date).getMonth() + 3) / 3), //季度
|
|||
|
"S": new Date(date).getMilliseconds() //毫秒
|
|||
|
};
|
|||
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (new Date(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;
|
|||
|
}
|
|||
|
|
|||
|
const formatNumber = n => {
|
|||
|
n = n.toString()
|
|||
|
return n[1] ? n : '0' + n
|
|||
|
}
|
|||
|
//加密方法
|
|||
|
function encrypt(word) {
|
|||
|
var keyStr = 'SH426B787D035B7585864EF93VV30BA9'; // 密文(密钥)
|
|||
|
var key = CryptoJS.enc.Utf8.parse(keyStr);
|
|||
|
var srcs = CryptoJS.enc.Utf8.parse(word);
|
|||
|
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
|
|||
|
mode: CryptoJS.mode.ECB,
|
|||
|
padding: CryptoJS.pad.Pkcs7,
|
|||
|
});
|
|||
|
return encrypted.toString();
|
|||
|
}
|
|||
|
//时间
|
|||
|
function getTime() {
|
|||
|
var timestamp = Date.parse(new Date());
|
|||
|
timestamp = timestamp / 1000;
|
|||
|
//获取当前时间
|
|||
|
var n = timestamp * 1000;
|
|||
|
var date = new Date(n);
|
|||
|
//年
|
|||
|
var Y = date.getFullYear();
|
|||
|
//月
|
|||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
|||
|
//日
|
|||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
|||
|
//时
|
|||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
|||
|
//分
|
|||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
|||
|
//秒
|
|||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
|||
|
return h + ':' + m + ':' + s;
|
|||
|
}
|
|||
|
function getTime1() {
|
|||
|
var timestamp = Date.parse(new Date());
|
|||
|
timestamp = timestamp / 1000;
|
|||
|
//获取当前时间
|
|||
|
var n = timestamp * 1000;
|
|||
|
var date = new Date(n);
|
|||
|
//年
|
|||
|
var Y = date.getFullYear();
|
|||
|
//月
|
|||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
|||
|
//日
|
|||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
|||
|
//时
|
|||
|
var h = date.getHours();
|
|||
|
//分
|
|||
|
var m = date.getMinutes();
|
|||
|
//秒
|
|||
|
var s = date.getSeconds();
|
|||
|
return Y + '-' + M + '-' + D;
|
|||
|
|
|||
|
}
|
|||
|
function getTime2() {
|
|||
|
var timestamp = Date.parse(new Date());
|
|||
|
timestamp = timestamp / 1000;
|
|||
|
//获取当前时间
|
|||
|
var n = timestamp * 1000;
|
|||
|
var date = new Date(n);
|
|||
|
//年
|
|||
|
var Y = date.getFullYear();
|
|||
|
//月
|
|||
|
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
|||
|
//日
|
|||
|
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
|||
|
//时
|
|||
|
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
|||
|
//分
|
|||
|
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
|||
|
//秒
|
|||
|
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
|||
|
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
|
|||
|
}
|
|||
|
function throttle(fn, interval) {
|
|||
|
var enterTime = 0;//触发的时间
|
|||
|
var gapTime = interval || 300 ;//间隔时间,如果interval不传,则默认300ms
|
|||
|
return function() {
|
|||
|
var context = this;
|
|||
|
var backTime = new Date();//第一次函数return即触发的时间
|
|||
|
if (backTime - enterTime > gapTime) {
|
|||
|
fn.call(context,arguments);
|
|||
|
enterTime = backTime;//赋值给第一次触发的时间,这样就保存了第二次触发的时间
|
|||
|
}
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
/*函数防抖*/
|
|||
|
function debounce(fn, interval) {
|
|||
|
var timer;
|
|||
|
var gapTime = interval || 500;//间隔时间,如果interval不传,则默认1000ms
|
|||
|
return function() {
|
|||
|
clearTimeout(timer);
|
|||
|
var context = this;
|
|||
|
var args = arguments;//保存此处的arguments,因为setTimeout是全局的,arguments不是防抖函数需要的。
|
|||
|
timer = setTimeout(function() {
|
|||
|
fn.call(context,args);
|
|||
|
}, gapTime);
|
|||
|
};
|
|||
|
}
|
|||
|
module.exports = {
|
|||
|
encrypt,
|
|||
|
getTime,
|
|||
|
getTime1,
|
|||
|
getTime2,
|
|||
|
DateFormat,
|
|||
|
throttle,
|
|||
|
debounce
|
|||
|
};
|