后端返回的时间数据经常是2026-01-15T15:34:25这种,所以需要把时间转换一下
/**
* 将带时区的时间字符串转换为无时区显示的字符串
* @param dateTimeStr 后端返回的时间字符串,如 "2025-11-20 06:00:17 UTC"
* @param keepOriginalTime 是否保持原始时间(不转换时区),默认false
* @returns 无时区显示的时间字符串
*/
export function formatBackendTime(dateTimeStr: string, keepOriginalTime: boolean = true): string {
const date = new Date(dateTimeStr);
if (keepOriginalTime) {
// 保持UTC时间
const utcYear = date.getUTCFullYear();
const utcMonth = String(date.getUTCMonth() + 1).padStart(2, '0');
const utcDay = String(date.getUTCDate()).padStart(2, '0');
const utcHours = String(date.getUTCHours()).padStart(2, '0');
const utcMinutes = String(date.getUTCMinutes()).padStart(2, '0');
const utcSeconds = String(date.getUTCSeconds()).padStart(2, '0');
return `${utcYear}-${utcMonth}-${utcDay} ${utcHours}:${utcMinutes}:${utcSeconds}`;
} else {
// 转换为本地时间
const localYear = date.getFullYear();
const localMonth = String(date.getMonth() + 1).padStart(2, '0');
const localDay = String(date.getDate()).padStart(2, '0');
const localHours = String(date.getHours()).padStart(2, '0');
const localMinutes = String(date.getMinutes()).padStart(2, '0');
const localSeconds = String(date.getSeconds()).padStart(2, '0');
return `${localYear}-${localMonth}-${localDay} ${localHours}:${localMinutes}:${localSeconds}`;
}
}
- 格式化分钟为“小时+分钟”
// 格式化分钟为“小时+分钟”
export function formatMinutesToHours(minutes: number | undefined): string {
if (minutes == null || minutes < 0) {
return '0分钟';
}
const hours = Math.floor(minutes / 60);
const mins = minutes % 60;
if (hours > 0 && mins > 0) {
return `${hours}小时${mins}分钟`;
} else if (hours > 0) {
return `${hours}小时`;
} else {
return `${mins}分钟`;
}
}