package utils import ( "fmt" "math" "time" "github.com/jinzhu/now" ) // 判断时间点处于今天 func IsToday(d int64) bool { tt := time.Unix(d, 0) now := time.Now() return tt.Year() == now.Year() && tt.Month() == now.Month() && tt.Day() == now.Day() } //判断是否大于1周 func IsAfterWeek(d int64) bool { tt := time.Unix(d, 0) nowt := time.Now() if !tt.Before(nowt) { return false } at := now.With(tt).AddDate(0, 0, 7).Unix() return nowt.Unix() >= at } // 获取当前时间戳下一天0点时间戳 func GetZeroTime(curTime int64) int64 { currentTime := time.Unix(curTime, 0) startTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, currentTime.Location()) return startTime.Unix() + 86400 //3600*24 } func IsYestoday(timestamp int64) bool { tt := time.Unix(timestamp, 0) yesTime := time.Now().AddDate(0, 0, -1) return tt.Year() == yesTime.Year() && tt.Month() == yesTime.Month() && tt.Day() == yesTime.Day() } // 确定换算规则 现实1H = 虚拟4H // 计算:根据开服时间为起始时间,计算当前时间与起始时间的差值,计算虚拟当前时间 func MatrixingHour(beginTime string) (t time.Time) { location, err := time.LoadLocation("Asia/Shanghai") if err != nil { return } myConfig := &now.Config{ WeekStartDay: time.Monday, TimeLocation: location, TimeFormats: []string{"2006-01-02 15:04:05"}, } serverStartTime, _ := myConfig.Parse(beginTime) n := time.Now() timeSub := n.Sub(serverStartTime) hourSub := timeSub.Hours() * 2 hh, _ := time.ParseDuration("1h") fmt.Println(hourSub, math.Ceil(hourSub)) t2 := serverStartTime.Add(hh * time.Duration(math.Ceil(hourSub))) fmt.Println(t2) return }