copy langext & termext from ffsclient
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package timeext
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
func FromSeconds(v int) time.Duration {
|
||||
return time.Duration(int64(v) * int64(time.Second))
|
||||
@@ -53,3 +56,36 @@ func FromMilliseconds(v int) time.Duration {
|
||||
func FromMillisecondsFloat(v float64) time.Duration {
|
||||
return time.Duration(int64(v * float64(time.Millisecond)))
|
||||
}
|
||||
|
||||
func FormatNaturalDurationEnglish(iv time.Duration) string {
|
||||
if sec := int64(iv.Seconds()); sec < 180 {
|
||||
if sec == 1 {
|
||||
return "1 second ago"
|
||||
} else {
|
||||
return fmt.Sprintf("%d seconds ago", sec)
|
||||
}
|
||||
}
|
||||
|
||||
if min := int64(iv.Minutes()); min < 180 {
|
||||
return fmt.Sprintf("%d minutes ago", min)
|
||||
}
|
||||
|
||||
if hours := int64(iv.Hours()); hours < 72 {
|
||||
return fmt.Sprintf("%d hours ago", hours)
|
||||
}
|
||||
|
||||
if days := int64(iv.Hours() / 24.0); days < 21 {
|
||||
return fmt.Sprintf("%d days ago", days)
|
||||
}
|
||||
|
||||
if weeks := int64(iv.Hours() / 24.0 / 7.0); weeks < 12 {
|
||||
return fmt.Sprintf("%d weeks ago", weeks)
|
||||
}
|
||||
|
||||
if months := int64(iv.Hours() / 24.0 / 7.0 / 30); months < 36 {
|
||||
return fmt.Sprintf("%d months ago", months)
|
||||
}
|
||||
|
||||
years := int64(iv.Hours() / 24.0 / 7.0 / 365)
|
||||
return fmt.Sprintf("%d years ago", years)
|
||||
}
|
||||
|
Reference in New Issue
Block a user