- Make sure that duration is not < 0
- Handle nil ExpiresAt time in poll
type Poll struct {
ID string `json:"id"`
- ExpiresAt time.Time `json:"expires_at"`
+ ExpiresAt *time.Time `json:"expires_at"`
Expired bool `json:"expired"`
Multiple bool `json:"multiple"`
VotesCount int64 `json:"votes_count"`
}
func TimeSince(t time.Time) string {
- return DurToStr(time.Since(t))
+ d := time.Since(t)
+ if d < 0 {
+ d = 0
+ }
+ return DurToStr(d)
}
func TimeUntil(t time.Time) string {
- return DurToStr(time.Until(t))
+ d := time.Until(t)
+ if d < 0 {
+ d = 0
+ }
+ return DurToStr(d)
}
func FormatTimeRFC3339(t time.Time) string {
<span>{{.Poll.VotesCount}} votes</span>
{{if .Poll.Expired}}
<span> - poll expired </span>
- {{else}}
+ {{else if .Poll.ExpiresAt}}
<span>
- poll ends in
<time datetime="{{FormatTimeRFC3339 .Poll.ExpiresAt}}" title="{{FormatTimeRFC822 .Poll.ExpiresAt}}">