// 1.获取某周的开始和结束时间,week为0本周,-1上周,1下周以此类推
func WeekIntervalTime(week int) (startTime, endTime string) {
now := time.Now()
offset := int(time.Monday - now.Weekday())
//周日做特殊判断 因为time.Monday = 0
if offset > 0 {
offset = -6
}
year, month, day := now.Date()
thisWeek := time.Date(year, month, day, 0, 0, 0, 0, time.Local)
startTime = thisWeek.AddDate(0, 0, offset+7*week).Format("2006-01-02") + " 00:00:00"
endTime = thisWeek.AddDate(0, 0, offset+6+7*week).Format("2006-01-02") + " 23:59:59"
return startTime,endTime
}
// 2.获取某月的开始和结束时间mon为0本月,-1上月,1下月以此类推
func MonthIntervalTime(mon int) (startTime, endTime string) {
year, month, _ := time.Now().Date()
thisMonth := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
startTime = thisMonth.AddDate(0, mon, 0).Format("2006-01-02") + " 00:00:00"
endTime = thisMonth.AddDate(0, mon+1, -1).Format("2006-01-02") + " 23:59:59"
return startTime,endTime
}
// 3.时间格式字符串转换为时间戳
func DateToTm(date string) int64 {
var cstSh, _ = time.LoadLocation("Asia/Shanghai")
tm, _ := time.ParseInLocation("2006-01-02 15:04:05", date, cstSh)
return tm.Unix()
}
原文地址:Golang获取过去或将来某周某月的开始时间戳和结束时间戳_大杂烩程序员的博客-优快云博客_go 获取下月时间