我有一个通过template
渲染的 struct .例如:
type Foo struct {
Created time.Time
...
}
我将此值传递给一个模板,并希望呈现该值,请参见:
Created at 2022-11-22 9:50 (0d1h12m34s ago)
显示时间戳(并对其进行格式化)非常简单,但我找不到一种计算时间间隔的方法.
Created at {{.Created}} ({{???}} ago)
在GO中,这将由time.Since(foo.Created)
完成,它返回Duration
,然后我可以用各种方法将持续时间转换为字符串.
但在模板本身中进行计算似乎是不可能的:
function "time" not defined
还是真的是这样?
我找不到任何明确告诉我模板中永远不允许使用time
(或其他任意函数)的信息.所以我不知道我是不是说错了.
(我知道我可以从Foo
添加该字段来创建一个新的FooTemplateValue
,这样模板就可以按原样呈现持续时间.我只是尽量避免它,并按原样使用实际对象).