// HR 模块通用格式化工具 /** * 把后端返回的 "2026-09-14 09:00:00" / ISO 等带日期的时间字符串 * 截成 "09:00" 这种 HH:MM 形式,避免日期信息污染卡片。 * - 空值返回空字符串 * - 无 HH:MM(:SS) 匹配时原样返回,避免静默吞错 */ export function extractTime(value) { if (value === null || value === undefined || value === "") return ""; const m = String(value).match(/(\d{1,2}:\d{2})(:\d{2})?/); return m ? m[1] : String(value); } /** * 把 Date / 时间字符串格式化为 yyyy-MM-dd */ export function formatDate(value) { if (!value) return ""; const d = value instanceof Date ? value : new Date(String(value).replace(/-/g, "/")); if (isNaN(d.getTime())) return String(value); const mm = String(d.getMonth() + 1).padStart(2, "0"); const dd = String(d.getDate()).padStart(2, "0"); return `${d.getFullYear()}-${mm}-${dd}`; } /** * 格式化 "yyyy-MM-dd HH:mm" 用于表单回显 */ export function formatDateTime(value) { if (!value) return ""; const d = value instanceof Date ? value : new Date(String(value).replace(/-/g, "/")); if (isNaN(d.getTime())) return String(value); const mm = String(d.getMonth() + 1).padStart(2, "0"); const dd = String(d.getDate()).padStart(2, "0"); const hh = String(d.getHours()).padStart(2, "0"); const mi = String(d.getMinutes()).padStart(2, "0"); return `${d.getFullYear()}-${mm}-${dd} ${hh}:${mi}`; }