formatDate.ts 706 B

12345678910111213141516171819
  1. import dayjs from 'dayjs'
  2. import utc from 'dayjs/plugin/utc'
  3. import timezone from 'dayjs/plugin/timezone'
  4. dayjs.extend(utc)
  5. dayjs.extend(timezone)
  6. // 强制按北京时区解析并格式化时间(展示为 2026-02-16 23:12:10,不含 T),返回 '-' 表示无值或解析失败
  7. export function formatDate(value?: string | null, format: string = 'YYYY-MM-DD HH:mm:ss') {
  8. if (!value) return '-'
  9. try {
  10. const formatted = dayjs.tz(value, 'Asia/Shanghai').format(format)
  11. // 确保展示时 T 被替换为空格(兼容 API 返回的 ISO 字符串直接展示的场景)
  12. return typeof formatted === 'string' ? formatted.replace('T', ' ') : formatted
  13. } catch (e) {
  14. return '-'
  15. }
  16. }