dateUtils.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // src/utils/dateUtils.ts
  2. export function parseTime(time: string | number | Date, cFormat?: string): string {
  3. if (arguments.length === 0) {
  4. return '';
  5. }
  6. const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
  7. let date: Date;
  8. // 如果是字符串,尝试解析为 Date
  9. if (typeof time === 'string') {
  10. date = new Date(time);
  11. } else if (time instanceof Date) {
  12. date = time;
  13. } else {
  14. date = new Date(time * 1000); // 时间戳(毫秒)
  15. }
  16. // 确保日期有效
  17. if (isNaN(date.getTime())) {
  18. return '';
  19. }
  20. // 定义映射表
  21. const map: Record<string, string> = {
  22. 'y': date.getFullYear().toString(),
  23. 'm': (date.getMonth() + 1).toString().padStart(2, '0'),
  24. 'd': date.getDate().toString().padStart(2, '0'),
  25. 'h': date.getHours().toString().padStart(2, '0'),
  26. 'i': date.getMinutes().toString().padStart(2, '0'),
  27. 's': date.getSeconds().toString().padStart(2, '0'),
  28. 'w': date.getDay().toString()
  29. };
  30. // 替换格式字符串中的占位符
  31. return format.replace(/{([ymdhisw])}/g, (match, key) => {
  32. return map[key] || match;
  33. });
  34. }