| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // src/utils/dateUtils.ts
- export function parseTime(time: string | number | Date, cFormat?: string): string {
- if (arguments.length === 0) {
- return '';
- }
- const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
- let date: Date;
- // 如果是字符串,尝试解析为 Date
- if (typeof time === 'string') {
- date = new Date(time);
- } else if (time instanceof Date) {
- date = time;
- } else {
- date = new Date(time * 1000); // 时间戳(毫秒)
- }
- // 确保日期有效
- if (isNaN(date.getTime())) {
- return '';
- }
- // 定义映射表
- const map: Record<string, string> = {
- 'y': date.getFullYear().toString(),
- 'm': (date.getMonth() + 1).toString().padStart(2, '0'),
- 'd': date.getDate().toString().padStart(2, '0'),
- 'h': date.getHours().toString().padStart(2, '0'),
- 'i': date.getMinutes().toString().padStart(2, '0'),
- 's': date.getSeconds().toString().padStart(2, '0'),
- 'w': date.getDay().toString()
- };
- // 替换格式字符串中的占位符
- return format.replace(/{([ymdhisw])}/g, (match, key) => {
- return map[key] || match;
- });
- }
|