This commit is contained in:
zlwu committed 2026-06-29 09:21:09 +08:00
1 parent 4daf990fab
commit 1ca2668112
219 files changed
+29817 -20945

No files matched your search

+18 -2
View File
@@ -1,9 +1,19 @@
/**
* 将用户粘贴的中文日期时间(如「2026年6月22日12时18分」)解析为系统标准格式。
*/
export type ChineseDatetimeFormat = 'date' | 'datetime' | 'datetime-minute'
/** 将日期时间规范为 `YYYY-MM-DD HH:mm`(去掉秒,兼容历史带秒数据) */
export function formatDatetimeToMinute(val: string): string {
const s = String(val || '').trim()
if (!s) return ''
const parsed = parseChineseDatetimeText(s, 'datetime-minute')
return parsed || s
}
export function parseChineseDatetimeText(
text: string,
format: 'date' | 'datetime'
format: ChineseDatetimeFormat
): string | null {
const raw = text.trim()
if (!raw) return null
@@ -20,6 +30,9 @@ export function parseChineseDatetimeText(
const timeParts = time.split(':')
const hh = timeParts[0]?.padStart(2, '0') ?? '00'
const mm = timeParts[1]?.padStart(2, '0') ?? '00'
if (format === 'datetime-minute') {
return `${parts[0]} ${hh}:${mm}`
}
const ss = timeParts[2]?.padStart(2, '0') ?? '00'
return `${parts[0]} ${hh}:${mm}:${ss}`
}
@@ -38,13 +51,16 @@ export function parseChineseDatetimeText(
const h = String(Number(cnMatch[4] || 0)).padStart(2, '0')
const mi = String(Number(cnMatch[5] || 0)).padStart(2, '0')
if (format === 'datetime-minute') {
return `${dateStr} ${h}:${mi}`
}
const s = String(Number(cnMatch[6] || 0)).padStart(2, '0')
return `${dateStr} ${h}:${mi}:${s}`
}
export function handleChineseDatetimePaste(
e: ClipboardEvent,
format: 'date' | 'datetime',
format: ChineseDatetimeFormat,
setter: (val: string) => void
) {
const text = e.clipboardData?.getData('text')?.trim()