# 时间与日期口径（10w+ 爆文）

## 数据同步节奏

- **入库同步时间**：每日 **18:30** 同步「前一日」数据。
- **订阅推送时间**：每日 **19:30**（此时 T-1 数据已同步完成）。

## 区间参数含义

- `start_date`、`end_date` 为 **闭开区间语义在脚本/接口侧以实现为准**；文档约定：查询某一「自然日」对应的榜单时，使用 **连续两个自然日** 组成查询区间（与 SKILL 示例一致），例如查「昨天」：`start_date=2026-05-13`，`end_date=2026-05-14`。
- 用户说「最近 / 最新」且无明确日期时：默认 **过去 7 天** 区间。

## 18:30 判断逻辑（Agent 必算）

- **当前时间 < 18:30**：视为「昨日批次」尚未就绪；若用户语义上要「最新可用榜单」，按原 SKILL 约定优先使用 **前天区间（T-2 ~ T-1）** 等与脚本示例一致的策略（与「今日爆文」话术联动）。
- **当前时间 >= 18:30**：「昨日批次」已就绪；查询「昨天」用 **昨天区间（T-1 ~ T）**。

## 典型对照表（假设「今天」= 2026-05-14）

| 用户询问 | 当前时间 | 实际查询区间（示例） | 原因摘要 |
|----------|----------|----------------------|----------|
| 今日文章 | 11:19 | `2026-05-12` ~ `2026-05-13` | 昨日数据未更新，用前天区间 |
| 今日文章 | 19:30 | `2026-05-13` ~ `2026-05-14` | 昨日数据已更新 |
| 昨天文章 | 11:19 | `2026-05-12` ~ `2026-05-13` | 用户口中的「昨天」在库中仍未对齐时，用已就绪区间并话术说明 |
| 昨天文章 | 19:30 | `2026-05-13` ~ `2026-05-14` | 与「昨天」语义一致 |

## 订阅推送查哪一天

- 推送发生在 **19:30**，查 **T-1（昨天）**；脚本支持 `yesterday` / `daybeforeyesterday` 关键字（见 `scripts/fetch_hot_articles.py` 帮助说明）。
- 脚本示例允许 **`--end_date ""`**（解析为空）与 `yesterday` 搭配；若走「自然日区间」口径，也可用 `start_date = 昨天`、`end_date = 今天` 两个具体 `YYYY-MM-DD`（与上文区间表一致）。

## 时间不一致时的固定话术（须原文使用）

只要 **用户问的时间** 与 **实际查询落库日期** 不一致，在「数据说明」后追加对应一句：

- 用户问「今天 / 今日」而实际只能给到「昨天」口径：  
  **「非常抱歉🙏，今天的数据要明天才会更新，我将为您查询昨天的xx月xx日10W+文章。」**
- 用户问「昨天」而实际只能给到「前天」口径：  
  **「非常抱歉🙏，昨天的数据还未更新，我将为您查询前天的xx月xx日10W+文章。」**
- 用户要求超出回溯（如超过 30 天）：  
  **「非常抱歉🙏，目前最多支持回溯过去30天，我将为您查询最接近您需求的时间范围~」**

**无需提示**：用户问法与真实查询区间一致时。

## 文章数过少（某赛道某日 < 10 篇）

在统计信息后追加：

**「💡 xx日xx赛道10w+文章较少，您可以拓展过去30天或者看看综合10w+文章~」**
