ref: 70544f9e62e5577d1daac1af8849739e4bef98ad
parent: d7f364c27e3adc4e012ee07e71f1c5ad5cfeb56f
author: Wade Fitzpatrick <[email protected]>
date: Thu Aug 4 05:55:24 EDT 2016
tpl: Add time template func Fixes #2328
--- a/tpl/template_funcs.go
+++ b/tpl/template_funcs.go
@@ -1380,6 +1380,16 @@
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 @@
"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,
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -136,6 +136,7 @@
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 @@
substr: Bat
substr: Man
title: Bat Man
+time: 2015-01-21T00:00:00Z
trim: Batman
upper: BATMAN
urlize: bat-man