# 文章详情页显示最后更新时间功能 ## 功能概述 为文章详情页添加了最后更新时间的显示,让读者可以看到文章的发布时间和最后修改时间。 ## 修改的文件 ### 1. 前端模板 #### `/templates/pages/article.html` - 修改了文章元信息显示部分(第24-33行) - 将原来的单一时间戳改为显示两个时间: - **发布时间**:文章首次发布的时间(`PublishedAt`) - **最后更新**:文章最后修改的时间(`UpdatedAt`) - 使用条件判断确保只在有值时显示 显示格式: ``` 作者名 · 发布时间: 2024-01-15 10:30 · 最后更新: 2024-01-20 14:25 ``` ### 2. 后端处理器 #### `/handlers/home.go` - 修改 `renderArticleDetail()` 函数(第189-201行): - 添加 `data["UpdatedAt"]` 传递更新时间到模板 - 添加 `formatUpdateTime()` 函数(第213-216行): - 格式化 `UpdatedAt` 字段为可读的时间字符串 - 格式:`2006-01-02 15:04`(年-月-日 时:分) ### 3. 国际化文本 #### `/i18n/i18n.go` 添加了翻译键: - `article_last_updated`: "Last Updated" / "最后更新" ## 功能特性 1. **双时间戳显示**: - 发布时间(PublishedAt):文章首次发布的时间 - 最后更新(UpdatedAt):文章最后一次修改的时间 2. **自动更新**: - `UpdatedAt` 字段由 GORM 自动维护 - 每次调用 `Updates()` 或 `Save()` 时自动更新 3. **智能显示**: - 如果文章没有发布时间,不显示发布时间 - 始终显示最后更新时间 4. **时间格式**: - 统一使用 `YYYY-MM-DD HH:MM` 格式 - 清晰易读 ## 显示效果 文章详情页顶部会显示: ### 英文界面 ``` John Doe · Published: 2024-01-15 10:30 · Last Updated: 2024-01-20 14:25 ``` ### 中文界面 ``` 张三 · 发布时间: 2024-01-15 10:30 · 最后更新: 2024-01-20 14:25 ``` ## 技术实现 - **数据库字段**:`updated_at` 字段是 GORM 的标准字段,类型为 `time.Time` - **自动维护**:GORM 在每次更新记录时自动设置 `updated_at` - **格式化**:使用 Go 的标准时间格式 `2006-01-02 15:04` ## 与发布时间编辑功能的配合 这个功能与之前实现的"自定义发布时间"功能完美配合: - **发布时间**(PublishedAt):可以由用户手动设置或自动生成 - **更新时间**(UpdatedAt):始终由系统自动维护,反映真实的修改时间 这样读者可以清楚地知道: 1. 文章最初是什么时候发布的 2. 文章最后一次修改是什么时候 ## 用户价值 1. **内容时效性**:读者可以判断文章内容是否及时更新 2. **信息透明**:清楚显示文章的发布和修改历史 3. **信任度提升**:显示更新时间表明作者在持续维护内容