前言
在项目中,在用到表单这些地方的时候难免会触及到时间转换的问题,因为前后交互的数据是JSON,因此我们要把前端的时间戳形式的时间转换成字符形式,而在前端领域中,不同的组件用到的时间的形式也不同,有day.js,moment.js等等,那么为了一两处的时间在项目中去下载这么一个依赖包多少有点小题大用了,因此在项目中,我会去自己去封装一个hooks,以便于时间的转换,那么话不多说,直接上代码:
代码
import { Determine } from "./"
/**
*
* @param {string|number} t
* @returns string
*/
function FormatString(t) {
var str = "00";
if (Determine(t)) {
if (t >= 0 && t < 10) {
str = "0" + t;
} else {
str = t;
}
}
return str;
}
/**
* 获取当前时间
*/
function GetCurrentTime(gap1 = "-", gap2 = ":") {
var dt = new Date();
var YY = dt.getFullYear();
var MM = FormatString(dt.getMonth() + 1);
var DD = FormatString(dt.getDate());
var hh = FormatString(dt.getHours());
var mm = FormatString(dt.getMinutes());
var ss = FormatString(dt.getSeconds());
var YMD = `${YY}${gap1}${MM}${gap1}${DD}`;
var hms = `${hh}${gap2}${mm}${gap2}${ss}`;
return {
YMD,
hms,
version: YMD + hms
}
}
export { GetCurrentTime }
而关于我引入的这个文件,它是我封装的一个用来判断传入的参数是否会是undefined等类型的一个hooks,代码一并奉上:
/**
* 判断 target 真假
* @param {*} value target
* @returns Boolean
*/
function Determine(value) {
var _bool = true
switch (typeof value) {
case "undefined":
_bool = false
break;
case "string":
var _value = value.trim()
var basis = _value.includes("null") || _value.includes("NULL") || _value.includes("undefined") || _value.includes("UNDEFINED")
_bool = _value ? basis : false
break;
case "number":
_bool = true
break;
case "symbol":
break;
case "function":
break;
case "boolean":
_bool = value
break;
case "object":
switch (value.constructor.name) {
case "Object":
_bool = Object.keys(value).length > 0
break;
case "Array":
_bool = value.length > 0
break;
case "Date":
break;
case "RegExp":
break;
default:
break;
}
break;
default:
break;
}
return _bool
}
export { Determine }
尾结
当然,我在这个time.js中只写了一个简单的获取当前时间并转换成字符,你们可以根据自己的具体需求去拓展这个hooks。
以上。