commit 70544f9e62e5577d1daac1af8849739e4bef98ad
parent d7f364c27e3adc4e012ee07e71f1c5ad5cfeb56f
Author: Wade Fitzpatrick <wade.fitzpatrick@gmail.com>
Date: Thu, 4 Aug 2016 09:55:24 +1000
tpl: Add time template func
Fixes #2328
Diffstat:
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go
@@ -1380,6 +1380,16 @@ func replaceRE(pattern, repl, src interface{}) (_ string, err error) {
return re.ReplaceAllString(srcStr, replStr), nil
}
+// asTime converts the textual representation of the datetime string into
+// a time.Time interface.
+func asTime(v interface{}) (interface{}, error) {
+ t, err := cast.ToTimeE(v)
+ if err != nil {
+ return nil, err
+ }
+ return t, nil
+}
+
// dateFormat converts the textual representation of the datetime string into
// the other form or returns it of the time.Time value. These are formatted
// with the layout string
@@ -1869,6 +1879,7 @@ func init() {
"sub": func(a, b interface{}) (interface{}, error) { return helpers.DoArithmetic(a, b, '-') },
"substr": substr,
"title": func(a string) string { return strings.Title(a) },
+ "time": asTime,
"trim": trim,
"upper": func(a string) string { return strings.ToUpper(a) },
"urlize": helpers.URLize,
diff --git a/tpl/template_funcs_test.go b/tpl/template_funcs_test.go
@@ -136,6 +136,7 @@ sub: {{sub 3 2}}
substr: {{substr "BatMan" 0 -3}}
substr: {{substr "BatMan" 3 3}}
title: {{title "Bat man"}}
+time: {{ time "2015-01-21" }}
trim: {{ trim "++Batman--" "+-" }}
upper: {{upper "BatMan"}}
urlize: {{ "Bat Man" | urlize }}
@@ -199,6 +200,7 @@ sub: 1
substr: Bat
substr: Man
title: Bat Man
+time: 2015-01-21T00:00:00Z
trim: Batman
upper: BATMAN
urlize: bat-man