fix: time in location

This commit is contained in:
deepzz0
2021-04-28 15:37:10 +08:00
parent 872d0b1987
commit 43d7a26e19
6 changed files with 79 additions and 13 deletions

View File

@@ -12,7 +12,12 @@ import (
"time"
)
var TplFuncMap = make(template.FuncMap)
var (
// TplFuncMap template func map
TplFuncMap = make(template.FuncMap)
// TimeLocation set location timezone
TimeLocation = time.UTC
)
func init() {
TplFuncMap["dateformat"] = DateFormat
@@ -22,19 +27,23 @@ func init() {
TplFuncMap["getavatar"] = GetAvatar
}
// Str2html string to html
func Str2html(raw string) htmpl.HTML {
return htmpl.HTML(raw)
}
// DateFormat takes a time and a layout string and returns a string with the formatted date. Used by the template parser as "dateformat"
// DateFormat takes a time and a layout string and returns a string with the formatted date.
// Used by the template parser as "dateformat"
func DateFormat(t time.Time, layout string) string {
return t.Format(layout)
return t.In(TimeLocation).Format(layout)
}
// Join join string array with sep
func Join(a []string, sep string) string {
return strings.Join(a, sep)
}
// IsNotZero judge t is zero
func IsNotZero(t time.Time) bool {
return !t.IsZero()
}
@@ -43,6 +52,7 @@ func IsNotZero(t time.Time) bool {
// url: https://<static_domain>/static/img/avatar.png
var avatar string
// GetAvatar store avatar base64 into css
func GetAvatar(domain string) string {
if avatar == "" {
resp, err := http.Get("https://" + domain + "/static/img/avatar.png")

43
tools/tmplfunc_test.go Normal file
View File

@@ -0,0 +1,43 @@
// Package tools provides ...
package tools
import (
"testing"
"time"
)
func TestDateFormat(t *testing.T) {
now := time.Now()
layout := "2006-01-02 15:04:05"
str := DateFormat(now, layout)
t.Log(str)
var err error
TimeLocation, err = time.LoadLocation("Asia/Shanghai")
if err != nil {
t.Fatal(err)
}
str = DateFormat(now, layout)
t.Log(str)
}
func TestParseInLocation(t *testing.T) {
date := "2021-04-27 15:33"
layout := "2006-01-02 15:04"
tm, err := time.Parse(layout, date)
if err != nil {
t.Fatal(err)
}
t.Log(tm)
TimeLocation, err = time.LoadLocation("Asia/Shanghai")
if err != nil {
t.Fatal(err)
}
tm, err = time.ParseInLocation(layout, date, TimeLocation)
if err != nil {
t.Fatal(err)
}
t.Log(tm.UTC())
}