vote-api/utils/tz.go
2024-08-27 14:51:15 +08:00

51 lines
1.1 KiB
Go

package utils
import (
"fmt"
"time"
"vote-api/api/model"
)
// StrToLocalTime 字符串时间转localtime
func StrToLocalTime(s string) (*model.LocalTime, error) {
// 获取本地时区
location, err := time.LoadLocation("Local")
if err != nil {
return nil, err
}
timeParse, err := time.ParseInLocation("2006-01-02 15:04:05", s, location)
if err != nil {
return nil, err
}
t := model.LocalTime(timeParse)
return &t, nil
}
// TimeToAgoString 根据给定的时间返回一个描述性的字符串
func TimeToAgoString(t time.Time) string {
now := time.Now()
diffTime := now.Sub(t)
switch {
case diffTime < time.Minute:
return "1分钟前"
case diffTime < time.Hour:
minutes := int(diffTime.Minutes())
return fmt.Sprintf("%d分钟前", minutes)
case diffTime < 24*time.Hour:
return "一小时前"
case diffTime < 48*time.Hour:
return "两天前"
case diffTime < 72*time.Hour:
return "三天前"
case diffTime < 10*time.Hour*24:
days := int(diffTime.Hours()) / 24
return fmt.Sprintf("%d天前", days)
default:
return "十天前"
}
}