需求:
需要做一个功能,每天早上8点以后查询第二天到期的服务(会员,服务等)给用户推送提示
分析:
1、如果使用mysql查询语句应该是这样的:
select * from table_name where start_time < time <end_time;
2、但是这个起始时间该怎么获取呢?而且程序是每天定时执行的,所以是不可能写死这个具体的起始时间。
3、因为起始时间是不确定的,但可以获取当前时间的时间戳,那么是不是就可以在这个方面入手?
4、获取到每天的时间戳,但我们要的是第二天的起始时间,因为一天的时间是86400秒,今天的时间加上86400
是不是就是第二天的时间了?
5、但是每天获取到的时间戳是不固定的,所以需要进行一个转换。
实现方法:
代码示例:
package main
//仅演示获取当天指定时间的时间戳
import (
"fmt"
"time"
)
//主函数
func main() {
slime :="2020-11-03"
startTime,endTime:=GetDateTime(slime)
fmt.Println( startTime,endTime)
}
func GetDateTime(date string) (int64,int64){
//获取当前时区
loc, _ := time.LoadLocation("Local")
//日期当天0点时间戳(拼接字符串)
startDate := date+"_00:00:00"
startTime, _:= time.ParseInLocation("2006-01-02_15:04:05",startDate,loc)
//日期当天23时59分时间戳
endDate:=date+"_23:59:59"
end,_:=time.ParseInLocation("2006-01-02_15:04:05",endDate,loc)
//返回当天0点和23点59分的时间戳
return startTime.Unix(),end.Unix()
}
结果: