# AddDate
> 返回给定 time.Time 值加上指定的年、月、日之后对应的时间。
- 官方英文原文：https://gohugo.io/methods/time/adddate/
- 本页规范地址：https://hugozh.cn/methods/time/adddate/
- 最近更新：2026-10-02
- 最后提交：912b1d3 chore(site): 添加 static/CNAME（hugozh.cn），供 GitHub Pages 等平台绑定自定义域名
- 签名：TIME.AddDate YEARS MONTHS DAYS
- 返回类型：time.Time
- 站点：Hugo 中文文档（https://hugozh.cn/）· 社区维护的非官方中文翻译，如有出入以官方英文原文为准

---
```go-html-template
{{ $d := "2022-01-01" | time.AsTime }}

{{ $d.AddDate 0 0 1 | time.Format "2006-01-02" }} → 2022-01-02
{{ $d.AddDate 0 1 1 | time.Format "2006-01-02" }} → 2022-02-02
{{ $d.AddDate 1 1 1 | time.Format "2006-01-02" }} → 2023-02-02

{{ $d.AddDate -1 -1 -1 | time.Format "2006-01-02" }} → 2020-11-30
```

> [!NOTE]
> 加上月份或年份时，如果得到的日期并不存在，Hugo 会归一化最终的 `time.Time` 值。例如给 1 月 31 日加一个月，会得到 3 月 2 日或 3 月 3 日，具体取决于年份。
>
> 参见 Go 团队的[这段说明][]。

```go-html-template
{{ $d := "2023-01-31" | time.AsTime }}
{{ $d.AddDate 0 1 0 | time.Format "2006-01-02" }} → 2023-03-03

{{ $d := "2024-01-31" | time.AsTime }}
{{ $d.AddDate 0 1 0 | time.Format "2006-01-02" }} → 2024-03-02

{{ $d := "2024-02-29" | time.AsTime }}
{{ $d.AddDate 1 0 0 | time.Format "2006-01-02" }} → 2025-03-01
```

[这段说明]: https://github.com/golang/go/issues/31145#issuecomment-479067967

