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}}