format.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // HR 模块通用格式化工具
  2. /**
  3. * 把后端返回的 "2026-09-14 09:00:00" / ISO 等带日期的时间字符串
  4. * 截成 "09:00" 这种 HH:MM 形式,避免日期信息污染卡片。
  5. * - 空值返回空字符串
  6. * - 无 HH:MM(:SS) 匹配时原样返回,避免静默吞错
  7. */
  8. export function extractTime(value) {
  9. if (value === null || value === undefined || value === "") return "";
  10. const m = String(value).match(/(\d{1,2}:\d{2})(:\d{2})?/);
  11. return m ? m[1] : String(value);
  12. }
  13. /**
  14. * 把 Date / 时间字符串格式化为 yyyy-MM-dd
  15. */
  16. export function formatDate(value) {
  17. if (!value) return "";
  18. const d = value instanceof Date ? value : new Date(String(value).replace(/-/g, "/"));
  19. if (isNaN(d.getTime())) return String(value);
  20. const mm = String(d.getMonth() + 1).padStart(2, "0");
  21. const dd = String(d.getDate()).padStart(2, "0");
  22. return `${d.getFullYear()}-${mm}-${dd}`;
  23. }
  24. /**
  25. * 格式化 "yyyy-MM-dd HH:mm" 用于表单回显
  26. */
  27. export function formatDateTime(value) {
  28. if (!value) return "";
  29. const d = value instanceof Date ? value : new Date(String(value).replace(/-/g, "/"));
  30. if (isNaN(d.getTime())) return String(value);
  31. const mm = String(d.getMonth() + 1).padStart(2, "0");
  32. const dd = String(d.getDate()).padStart(2, "0");
  33. const hh = String(d.getHours()).padStart(2, "0");
  34. const mi = String(d.getMinutes()).padStart(2, "0");
  35. return `${d.getFullYear()}-${mm}-${dd} ${hh}:${mi}`;
  36. }