需求:

需要做一个功能,每天早上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()
}

结果: