129 lines
4.6 KiB
TypeScript
129 lines
4.6 KiB
TypeScript
export const formatDate = (date: Date|string): any => {
|
||
if (date === undefined || date === null) {
|
||
return '-';
|
||
}
|
||
|
||
let dateDetail: Date;
|
||
|
||
if (date instanceof Date) {
|
||
dateDetail = date;
|
||
} else {
|
||
dateDetail = new Date(date as string);
|
||
if (isNaN(dateDetail.getTime())) {
|
||
return '-';
|
||
}
|
||
}
|
||
const year = dateDetail.getFullYear();
|
||
const month = String(dateDetail.getMonth() + 1).padStart(2, '0');
|
||
const day = String(dateDetail.getDate()).padStart(2, '0');
|
||
|
||
const hours = String(dateDetail.getHours()).padStart(2, '0');
|
||
const minutes = String(dateDetail.getMinutes()).padStart(2, '0');
|
||
const seconds = String(dateDetail.getSeconds()).padStart(2, '0');
|
||
|
||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||
};
|
||
export const formatListTime = (date: any) => {
|
||
let dateDetail: Date;
|
||
if (date instanceof Date) {
|
||
dateDetail = date;
|
||
} else if (typeof date === 'string') {
|
||
dateDetail = new Date(date);
|
||
if (isNaN(dateDetail.getTime())) {
|
||
return '-';
|
||
}
|
||
} else {
|
||
return '-';
|
||
}
|
||
const year = dateDetail.getFullYear();
|
||
const month = String(dateDetail.getMonth() + 1).padStart(2, '0');
|
||
const day = String(dateDetail.getDate()).padStart(2, '0');
|
||
const hours = dateDetail.getHours();
|
||
const minutes = String(dateDetail.getMinutes()).padStart(2, '0');
|
||
const seconds = String(dateDetail.getSeconds()).padStart(2, '0');// 将24小时制转换为12小时制
|
||
//如果不是今年 返回年
|
||
if (dateDetail.getFullYear() !== new Date().getFullYear()) {
|
||
return `${year}`;
|
||
}
|
||
//如果是今天,返回时和分,如果不是今天,返回月和日
|
||
|
||
if (dateDetail.toDateString() === new Date().toDateString()) {
|
||
return `${hours}:${minutes}`;
|
||
} else {
|
||
return `${month}-${day}`;
|
||
}
|
||
}
|
||
|
||
|
||
export const formatDateArray = (dates: Date[]): string[] => {
|
||
return dates.map(date => formatDate(date));
|
||
};
|
||
|
||
export const getToday = () => {
|
||
const today = new Date();
|
||
return { start: formatDate(new Date(today.setHours(0, 0, 0, 0))), end: formatDate(new Date(today.setHours(23, 59, 59, 999))) };
|
||
};
|
||
|
||
export const getYesterday = () => {
|
||
const yesterday = new Date();
|
||
yesterday.setDate(yesterday.getDate() - 1);
|
||
return { start: formatDate(new Date(yesterday.setHours(0, 0, 0, 0))), end: formatDate(new Date(yesterday.setHours(23, 59, 59, 999))) };
|
||
};
|
||
|
||
export const getTomorrow = () => {
|
||
const tomorrow = new Date();
|
||
tomorrow.setDate(tomorrow.getDate() + 1);
|
||
return { start: formatDate(new Date(tomorrow.setHours(0, 0, 0, 0))), end: formatDate(new Date(tomorrow.setHours(23, 59, 59, 999))) };
|
||
};
|
||
|
||
export const getThisWeek = () => {
|
||
const today = new Date();
|
||
const startOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));
|
||
const endOfWeek = new Date(today.setDate(today.getDate() - today.getDay() + 6));
|
||
return { start: formatDate(new Date(startOfWeek.setHours(0, 0, 0, 0))), end: formatDate(new Date(endOfWeek.setHours(23, 59, 59, 999))) };
|
||
};
|
||
|
||
export const getThisMonth = () => {
|
||
const today = new Date();
|
||
const startOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
|
||
const endOfMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0);
|
||
return { start: formatDate(new Date(startOfMonth.setHours(0, 0, 0, 0))), end: formatDate(new Date(endOfMonth.setHours(23, 59, 59, 999))) };
|
||
};
|
||
|
||
export const getDaysBetweenDates = (startDateStr: string, endDateStr: string): string[] => {
|
||
const startDate = new Date(startDateStr);
|
||
const endDate = new Date(endDateStr);
|
||
const days: string[] = [];
|
||
let currentDate = new Date(startDate);
|
||
|
||
while (currentDate <= endDate) {
|
||
days.push(formatDate(currentDate).split(' ')[0]);
|
||
currentDate.setDate(currentDate.getDate() + 1);
|
||
}
|
||
|
||
return days;
|
||
};
|
||
|
||
export const getEndOfDay = (date: Date | string): string => {
|
||
let dateDetail: Date;
|
||
|
||
if (date instanceof Date) {
|
||
dateDetail = new Date(date);
|
||
} else {
|
||
dateDetail = new Date(date);
|
||
if (isNaN(dateDetail.getTime())) {
|
||
return '-';
|
||
}
|
||
}
|
||
|
||
dateDetail.setHours(23, 59, 59, 0); // 设置为当天 23:59:00
|
||
return formatDate(dateDetail).slice(0, 19); //
|
||
};
|
||
export const getCurrentDate=()=> {
|
||
const date = new Date();
|
||
const year = date.getFullYear();
|
||
// 月份从0开始,所以要加1
|
||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1并补0
|
||
const day = String(date.getDate()).padStart(2, '0'); // 补0操作
|
||
return `${year}-${month}-${day}`;
|
||
} |