猿问

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

一个是golang生成的当前时间戳,但是返回的是int64位的

time.Now().Unix()

一个是从数据库中取出的的时间戳

1470219268

我要做时间比较[if time.Now().Unix() > 1470219268]。。。

但是一直报错 
invalid operation: now - node.AlarmMax_SignTime (mismatched types int64 and int)

我在网上找了许久,都没有一个很好的办法,比如讲数据库中的时间戳转化为时间再对比,也不行。。。


牛魔王的故事
浏览 5202回答 2
2回答

jeck猫

在1.7.1下测试是可以比较的func main() {    if time.Now().Unix() > 1470219268 {         fmt.Println("aaa")     } }没有问题。而且从报错信息来看,也只是int64和int不能直接比较,做一下类型转换就行了。

杨魅力

从数据库解析出来是定义的struct么?要是struct就把类型换成int64 ,不是就 time.Now().Unix()>int64(1470219268)另外 要是直接是time.Now().Unix()>int64(1470219268) go是不会报错的你可能是定义了一个变量比如a:=1470219268time.Now().Unix()>a 这样子会报错 a默认为int 要是这样子var a int64a=1470219268time.Now().Unix()>a 这样子也是没问题的。
随时随地看视频慕课网APP

相关分类

Go
我要回答