开发过程中我们经常需要拿到相对于当前时间过去或将来的某周某月的开始和结束时间戳,下面为大家准备了对应的方法。
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
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。