From ae36d59b68798d9530fec4cb15d91f193283de3e Mon Sep 17 00:00:00 2001 From: nannanwu Date: Sun, 22 Feb 2026 14:17:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(model):=20=E6=B7=BB=E5=8A=A0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=B7=A5=E5=85=B7=E5=87=BD=E6=95=B0=E5=B9=B6=E5=9C=A8?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A8=A1=E6=9D=BF=E4=B8=AD=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 model 包下 time.go,提供时间戳转换和获取当前时间戳的多种方法 - 新增 model 包下 tools.go,包含 UnixToTime 函数用于时间戳格式化 - 在 main.go 中注册 UnixToTime 为模板函数 - 修改默认控制器,首页渲染中添加时间戳数据及标题 - 首页模板添加调用 UnixToTime 格式化显示时间戳 - 优化控制器导入,添加必要包引用和格式调整 --- controller/nannanwu/defaultController.go | 15 +++++++-- main.go | 7 ++++ model/time.go | 41 ++++++++++++++++++++++++ model/tools.go | 13 ++++++++ templates/pages/index.html | 1 + 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 model/time.go create mode 100644 model/tools.go diff --git a/controller/nannanwu/defaultController.go b/controller/nannanwu/defaultController.go index aacbaf6..90b96c8 100644 --- a/controller/nannanwu/defaultController.go +++ b/controller/nannanwu/defaultController.go @@ -1,6 +1,11 @@ package nannanwu -import "github.com/gin-gonic/gin" +import ( + "awesomeProject/model" + "fmt" + + "github.com/gin-gonic/gin" +) type DefaultController struct { //继承BaseController @@ -8,13 +13,17 @@ type DefaultController struct { } func (con DefaultController) Index(c *gin.Context) { - c.HTML(200, "pages/index", gin.H{}) + fmt.Println(model.UnixToTime(1629788418)) + c.HTML(200, "pages/index", gin.H{ + "title": "首页", + "t": 1629788418, + }) } func (con DefaultController) Article(c *gin.Context) { c.String(200, "文章详情") } -// 使用继承的方式调用BaseController的success方法 +// Success 使用继承的方式调用BaseController的success方法 func (con DefaultController) Success(c *gin.Context) { BaseController{}.success(c) } diff --git a/main.go b/main.go index ab1ee49..bae6bb0 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,9 @@ package main import ( + "awesomeProject/model" "awesomeProject/router" + "html/template" "github.com/gin-gonic/gin" ) @@ -11,6 +13,11 @@ func main() { // 创建默认的gin引擎 r := gin.Default() + //自定义模板函数 + r.SetFuncMap(template.FuncMap{ + "UnixToTime": model.UnixToTime, + }) + // 加载模板文件,支持多层目录结构 r.LoadHTMLGlob("templates/**/*") diff --git a/model/time.go b/model/time.go new file mode 100644 index 0000000..0fb3dcc --- /dev/null +++ b/model/time.go @@ -0,0 +1,41 @@ +package model + +import ( + "time" +) + +// TimeUtil 时间工具结构体 +type TimeUtil struct{} + +// TimestampToDate 将时间戳转换为日期字符串 +// timestamp: 秒级或毫秒级时间戳 +// layout: 日期格式,如 "2006-01-02 15:04:05" +func (t TimeUtil) TimestampToDate(timestamp int64, layout string) string { + // 判断是秒级还是毫秒级时间戳 + if timestamp > 1e10 { + timestamp = timestamp / 1000 + } + return time.Unix(timestamp, 0).Format(layout) +} + +// TimestampToDateDefault 使用默认格式转换时间戳 +// 默认格式: 2006-01-02 15:04:05 +func (t TimeUtil) TimestampToDateDefault(timestamp int64) string { + return t.TimestampToDate(timestamp, "2006-01-02 15:04:05") +} + +// TimestampToDateOnly 只返回日期部分 +// 格式: 2006-01-02 +func (t TimeUtil) TimestampToDateOnly(timestamp int64) string { + return t.TimestampToDate(timestamp, "2006-01-02") +} + +// NowTimestamp 获取当前时间戳(秒级) +func (t TimeUtil) NowTimestamp() int64 { + return time.Now().Unix() +} + +// NowTimestampMilli 获取当前时间戳(毫秒级) +func (t TimeUtil) NowTimestampMilli() int64 { + return time.Now().UnixMilli() +} diff --git a/model/tools.go b/model/tools.go new file mode 100644 index 0000000..ce0e50c --- /dev/null +++ b/model/tools.go @@ -0,0 +1,13 @@ +package model + +import ( + "fmt" + "time" +) + +// 传入时间戳,返回时间格式字符串 +func UnixToTime(timestamp int) string { + fmt.Println(timestamp) + t := time.Unix(int64(timestamp), 0) + return t.Format("2006-01-02 15:04:05") +} diff --git a/templates/pages/index.html b/templates/pages/index.html index d0ab3e1..ee1cecb 100644 --- a/templates/pages/index.html +++ b/templates/pages/index.html @@ -12,6 +12,7 @@ {{template "layout/navbar"}}

{{.title}}

+

{{UnixToTime .t}}

{{$t := .title}}

{{$t}}