package utils import ( "fmt" "time" "vote-video-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 "十天前" } }