时间戳

JavaScriptGolang的时间戳

在计算cookie的有效期时,前端使用JavaScript的时间戳, 后端使用Golang获得时间戳,比较确认是否在有效期内。

但是Golang Unix 时间戳的时间零点和JavaScript的时间零点一致,但是时间单位不同。

JavaScript

  • 时间零点 1970-01-01
  • 时间单位 毫秒

Golang UnixNao

  • 时间零点 1970-01-01
  • 时间单位 秒或纳秒

设计方法 TimeToJavaScriptTimeGolang的时间类型转换成相对于1970-01-01的毫秒

JavaScript

1
2
3
4
> x =new Date()
2018-10-28T10:08:38.546Z
> x.getTime()
1540721318546

Golang

1
2
3
4
5
func TimeToJavaScriptTime(dtNow time.Time) int64 {
dtMark, _ := time.Parse("20060102", "19700101")
dur := dtNow.Sub(dtMark)
return dur.Nanoseconds() / 1e6
}

上述方法存在如下包中,欢迎引入

github.com/devuser/golang-notes/webutils