| | |
| | | // 强制转换为字符串,兼容 null, undefined, number 等类型 |
| | | var s = '' + dateStr; |
| | | |
| | | if (s.length < 10) { |
| | | // 处理空值或无效值 |
| | | if (!s || s === 'null' || s === 'undefined' || s.length < 10) { |
| | | return '—'; |
| | | } |
| | | |
| | | // 使用 slice 替换 substr |
| | | // 处理ISO格式的时间字符串,如 "2025-10-06T00:00" 或 "2025-10-06T00:00:00" |
| | | // 提取年月日 |
| | | var y = s.slice(0, 4); |
| | | var m = s.slice(5, 7); |
| | | var d = s.slice(8, 10); |
| | |
| | | return y + '-' + m + '-' + d; |
| | | } |
| | | |
| | | // 检查时间部分所需长度 |
| | | if (format === 'YYYY-MM-DD HH:mm' && s.length >= 16) { |
| | | var h = s.slice(11, 13); |
| | | var min = s.slice(14, 16); |
| | | // 处理时间部分 - 支持多种格式 |
| | | if (format === 'YYYY-MM-DD HH:mm') { |
| | | var h = '00'; |
| | | var min = '00'; |
| | | |
| | | // 检查是否有时间部分 |
| | | if (s.length >= 16 && s.charAt(10) === 'T') { |
| | | // ISO格式: 2025-10-06T00:00 或 2025-10-06T00:00:00 |
| | | h = s.slice(11, 13); |
| | | min = s.slice(14, 16); |
| | | } else if (s.length >= 16 && s.charAt(10) === ' ') { |
| | | // 标准格式: 2025-10-06 00:00:00 |
| | | h = s.slice(11, 13); |
| | | min = s.slice(14, 16); |
| | | } |
| | | |
| | | return y + '-' + m + '-' + d + ' ' + h + ':' + min; |
| | | } |
| | | |
| | | return '—'; // 默认返回占位符 |
| | | }; |
| | | |
| | | |
| | | |
| | | module.exports = { |
| | | |
| | | formatDate: formatDate |
| | | |
| | | }; |