- Add custom publish time field to article create/edit forms - Support datetime-local input for manual time setting - Auto-set on first publish if left blank - Works for both admin and user article forms - Display last updated time on article detail page - Show both published time and last updated time - Auto-maintained by GORM on each update - Format: YYYY-MM-DD HH:MM - Add i18n support for new fields - article_published_at: Published Time / 发布时间 - article_published_at_hint: Leave blank to auto-set on publish / 留空则在发布时自动设置 - article_last_updated: Last Updated / 最后更新 - Update handlers and templates - handlers/article.go: Add parsePublishedAt/formatPublishedAt functions - handlers/home.go: Add formatUpdateTime function - handlers/my_articles.go: Support custom publish time in user articles - templates: Add datetime-local inputs and time display Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
文章详情页显示最后更新时间功能
功能概述
为文章详情页添加了最后更新时间的显示,让读者可以看到文章的发布时间和最后修改时间。
修改的文件
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" / "最后更新"
功能特性
-
双时间戳显示:
- 发布时间(PublishedAt):文章首次发布的时间
- 最后更新(UpdatedAt):文章最后一次修改的时间
-
自动更新:
UpdatedAt字段由 GORM 自动维护- 每次调用
Updates()或Save()时自动更新
-
智能显示:
- 如果文章没有发布时间,不显示发布时间
- 始终显示最后更新时间
-
时间格式:
- 统一使用
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):始终由系统自动维护,反映真实的修改时间
这样读者可以清楚地知道:
- 文章最初是什么时候发布的
- 文章最后一次修改是什么时候
用户价值
- 内容时效性:读者可以判断文章内容是否及时更新
- 信息透明:清楚显示文章的发布和修改历史
- 信任度提升:显示更新时间表明作者在持续维护内容