import Vue from 'vue'
|
|
Vue.filter('formatDate', (value: string | Date | null): string => {
|
let date: Date;
|
const today = new Date();
|
|
if (!value) {
|
return '尚無紀錄';
|
};
|
|
if (typeof value === 'string') {
|
date = new Date(value);
|
} else {
|
date = value;
|
};
|
|
const isToday = (compareDate: Date): boolean => {
|
return compareDate.getFullYear() === today.getFullYear()
|
&& compareDate.getMonth() === today.getMonth()
|
&& compareDate.getDate() === today.getDate();
|
};
|
|
const isThisYear = (compareDate: Date): boolean => {
|
return compareDate.getFullYear() === today.getFullYear();
|
};
|
|
const minutes = date.getMinutes() > 9 ? date.getMinutes() : `0${date.getMinutes()}`;
|
|
if (isThisYear(date)) {
|
return isToday(date)
|
? `今天 ${date.getHours()}:${minutes}`
|
: `${date.getMonth() + 1}/${date.getDate()} ${date.getHours()}:${minutes}`;
|
} else {
|
return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()} ${date.getHours()}:${minutes}`;
|
};
|
|
})
|