mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-05-04 04:01:16 +08:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
/**
|
|
* 时间参数解析工具
|
|
*/
|
|
|
|
export interface ExtendedTimeParams {
|
|
start_time?: string // 格式: "YYYY-MM-DD HH:mm"
|
|
end_time?: string // 格式: "YYYY-MM-DD HH:mm"
|
|
}
|
|
|
|
/**
|
|
* 解析时间参数,返回时间过滤器
|
|
* 优先级: start_time/end_time > context.timeFilter
|
|
*/
|
|
export function parseExtendedTimeParams(
|
|
params: ExtendedTimeParams,
|
|
contextTimeFilter?: { startTs: number; endTs: number }
|
|
): { startTs: number; endTs: number } | undefined {
|
|
if (params.start_time || params.end_time) {
|
|
let startTs: number | undefined
|
|
let endTs: number | undefined
|
|
|
|
if (params.start_time) {
|
|
const startDate = new Date(params.start_time.replace(' ', 'T'))
|
|
if (!isNaN(startDate.getTime())) {
|
|
startTs = Math.floor(startDate.getTime() / 1000)
|
|
}
|
|
}
|
|
|
|
if (params.end_time) {
|
|
const endDate = new Date(params.end_time.replace(' ', 'T'))
|
|
if (!isNaN(endDate.getTime())) {
|
|
endTs = Math.floor(endDate.getTime() / 1000)
|
|
}
|
|
}
|
|
|
|
if (startTs !== undefined || endTs !== undefined) {
|
|
return {
|
|
startTs: startTs ?? 0,
|
|
endTs: endTs ?? Math.floor(Date.now() / 1000),
|
|
}
|
|
}
|
|
}
|
|
|
|
return contextTimeFilter
|
|
}
|