gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/myx/timeutil/time-util.go (about) 1 package timeutil 2 3 import ( 4 "time" 5 ) 6 7 const DAY_SECOND = 3600 * 24 8 const MINUTE_SECOND = 60 9 10 //获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。 11 func GetFirstDateOfMonth(d time.Time) time.Time { 12 d = d.AddDate(0, 0, -d.Day()+1) 13 return GetZeroTimeOfDay(d) 14 } 15 16 //获取传入的时间所在月份的最后一天,即某月最后一天的0点。如传入time.Now(), 返回当前月份的最后一天0点时间。 17 func GetLastDateOfMonth(d time.Time) time.Time { 18 return GetFirstDateOfMonth(d).AddDate(0, 1, -1) 19 } 20 21 //获取某一天的0点时间 22 func GetZeroTimeOfWeek(d time.Time) time.Time { 23 offset := int(time.Monday - d.Weekday()) 24 if offset > 0 { 25 offset = -6 26 } 27 return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset) 28 } 29 30 //获取某一天的0点时间 31 func GetZeroTimeOfDay(d time.Time) time.Time { 32 return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location()) 33 } 34 35 //获取某一天的0点时间 36 func GetZeroTimeOfMinute(d time.Time) time.Time { 37 return time.Date(d.Year(), d.Month(), d.Day(), d.Hour(), d.Minute(), 0, 0, d.Location()) 38 } 39 40 //获取某一天的0点时间 41 func Z在今天范围(d int) bool { 42 diff := time.Now().Sub(GetZeroTimeOfDay(time.Unix(int64(d), 0))) 43 if int(diff.Hours()) >= 24 { 44 return false 45 } 46 47 return true 48 }