模板自定义函数 template function

时间:2022-02-27 04:43:52

sqlite3中的日期默认是UTC,当日期字段的默认值是CURRENT_TIMESTAMP时,这个日期和北京时间CST少了8小时。
网上建议说数据库里用UTC,读取数据时再转换为当地时间。

web页面中的日期如创建日期通常是需要“格式化”一下的,否则显示出来是这个样子:

2017-08-17 08:50:37 +0000 UTC 

在go template中可以使用管道,自定义一个日期函数即可。
其实这个函数很简单,关键就是要用Local函数:

func formatDate(t time.Time) string { 
  layout := "2006-01-02"
  return t.Local().Format(layout)
}

还要记住一点:给模板中增加的自定义函数要在解析html文件前调用!

funcMap := template.FuncMap{
  "fdate": formatDate, "fdatetime": formatDateTime
}
t, err := template.New("employees.html").Funcs(funcMap).ParseFiles("employees.html")

-- END --