为了账号安全,请及时绑定邮箱和手机立即绑定

golang 时间戳比较大小,怎么实现?

golang 时间戳比较大小,怎么实现?

Go
牛魔王的故事 2019-02-06 10:06:22
一个是golang生成的当前时间戳,但是返回的是int64位的time.Now().Unix()一个是从数据库中取出的的时间戳1470219268我要做时间比较[if time.Now().Unix() > 1470219268]。。。但是一直报错 invalid operation: now - node.AlarmMax_SignTime (mismatched types int64 and int)我在网上找了许久,都没有一个很好的办法,比如讲数据库中的时间戳转化为时间再对比,也不行。。。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

在1.7.1下测试是可以比较的

func main() {    if time.Now().Unix() > 1470219268 {
        fmt.Println("aaa")
    }
}

没有问题。

而且从报错信息来看,也只是int64和int不能直接比较,做一下类型转换就行了。


查看完整回答
反对 回复 2019-03-16
?
杨魅力

TA贡献1811条经验 获得超6个赞

从数据库解析出来是定义的struct么?要是struct就把类型换成int64 ,不是就 time.Now().Unix()>int64(1470219268)

另外 要是直接是time.Now().Unix()>int64(1470219268) go是不会报错的
你可能是定义了一个变量比如
a:=1470219268
time.Now().Unix()>a 这样子会报错 a默认为int 
要是这样子
var a int64
a=1470219268
time.Now().Unix()>a 这样子也是没问题的。


查看完整回答
反对 回复 2019-03-16
  • 2 回答
  • 0 关注
  • 5201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信