@mt-kit/vue-directives
Version:
46 lines (33 loc) • 1.22 kB
text/typescript
import {
App
} from "vue";
function dateFormat(time: number): string {
const date = new Date(time);
const year = date.getFullYear();
/* 在日期格式中,月份是从0开始的,因此要加0
* 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
*/
const month = date.getMonth() + 1 < 10 ? `0${ date.getMonth() + 1}` : date.getMonth() + 1;
const day = date.getDate() < 10 ? `0${ date.getDate()}` : date.getDate();
const hours = date.getHours() < 10 ? `0${ date.getHours()}` : date.getHours();
const minutes = date.getMinutes() < 10 ? `0${ date.getMinutes()}` : date.getMinutes();
const seconds = date.getSeconds() < 10 ? `0${ date.getSeconds()}` : date.getSeconds();
// 拼接
return `${year }-${ month }-${ day } ${ hours }:${ minutes }:${ seconds}`;
}
/**
* 转换时间
*/
export default function directiveConversionTime(app: App): void {
app.directive("conversion-time", {
mounted(el) {
const text = el.textContent;
let timer: number = Number.parseInt(text);
// 同意格式
if (JSON.stringify(timer).length === 10) {
timer = timer * 1000;
}
el.textContent = dateFormat(timer);
}
});
}