feat: store last seen date for users and present in stats and user lists, closes #9007
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"regexp"
|
||||
"time"
|
||||
)
|
||||
|
||||
func StringsFallback2(val1 string, val2 string) string {
|
||||
@@ -28,3 +31,34 @@ func SplitString(str string) []string {
|
||||
|
||||
return regexp.MustCompile("[, ]+").Split(str, -1)
|
||||
}
|
||||
|
||||
func GetAgeString(t time.Time) string {
|
||||
if t.IsZero() {
|
||||
return "?"
|
||||
}
|
||||
|
||||
sinceNow := time.Since(t)
|
||||
minutes := sinceNow.Minutes()
|
||||
years := int(math.Floor(minutes / 525600))
|
||||
months := int(math.Floor(minutes / 43800))
|
||||
days := int(math.Floor(minutes / 1440))
|
||||
hours := int(math.Floor(minutes / 60))
|
||||
|
||||
if years > 0 {
|
||||
return fmt.Sprintf("%dy", years)
|
||||
}
|
||||
if months > 0 {
|
||||
return fmt.Sprintf("%dM", months)
|
||||
}
|
||||
if days > 0 {
|
||||
return fmt.Sprintf("%dd", days)
|
||||
}
|
||||
if hours > 0 {
|
||||
return fmt.Sprintf("%dh", hours)
|
||||
}
|
||||
if int(minutes) > 0 {
|
||||
return fmt.Sprintf("%dm", int(minutes))
|
||||
}
|
||||
|
||||
return "< 1m"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user