hexo 学习 0010:hexo 日期 & 时间配置

在 Hexo 博客中,日期和时间的显示格式直接影响文章的阅读体验和归档逻辑。Hexo 内部使用 Moment.js 库来处理时间的解析与显示,因此其配置格式遵循 Moment.js 的规范。本文将详细解读 _config.yml 中的日期时间相关配置。

核心显示格式配置

date_format
定义日期的显示格式。默认值为 YYYY-MM-DD,显示效果为 2026-03-09。你可以根据个人喜好调整,例如改为 MM/DD/YYYYdddd, MMMM Do YYYY 等样式。

time_format
定义时间的显示格式。默认值为 HH:mm:ss,显示效果为 17:05:24。若不需要显示秒,可将其修改为 HH:mm

更新时间选项配置

updated_option
该配置用于控制当文章 Front Matter(前置声明)中未指定 updated 字段时,Hexo 如何获取文章的更新时间。它有三个可选值:

  • mtime:使用文件的最后修改时间。这是 Hexo 3.0.0 开始的默认行为,能够真实反映文件在磁盘上的最后修改时刻。
  • date:使用 date 字段作为 updated 的值。此选项适用于使用 Git 管理站点的用户,因为 Git 操作(如 clone、pull)可能会改变文件的系统修改时间,导致时间显示不准确,使用此选项可保持时间与文章发布时间一致。
  • empty:直接删除 updated 字段。注意:使用此选项可能会导致大部分主题和插件无法正常工作,因为它们通常依赖 updated 字段来判断文章是否被更新过。

配置示例

以下是一个自定义日期时间配置的示例:

1
2
3
4
# Date / Time format
date_format: YYYY年MM月DD日
time_format: HH:mm
updated_option: date

此配置表示:日期显示为 2026年03月09日 的格式,时间仅显示时和分,并且文章的更新时间将与发布时间保持一致。

注意事项

  • 格式参考:具体的日期时间格式化字符串(如 YYYYMM 等)定义可参考 Moment.js 官方文档的显示格式章节。
  • 配置变更:在 Hexo 版本 7.0.0 及以上版本中,use_date_for_updated 选项已被移除。如果你需要将 updated 时间与 date 时间保持一致,请直接使用 updated_option: 'date' 进行配置。
  • 时区问题:虽然配置中未直接体现,但建议在服务器或本地环境中确认时区设置,以确保生成的时间与预期时区(如北京时间)一致,避免出现时间偏差。
  • 主题兼容性:修改 date_formattime_format 通常只影响自动生成的日期显示,文章 Front Matter 中的日期格式由你手动编写决定,但为了统一,建议保持一致。