检查两个日期之间的时间戳
Posted
技术标签:
【中文标题】检查两个日期之间的时间戳【英文标题】:check if timestamp between 2 dates 【发布时间】:2022-01-23 04:51:53 【问题描述】:我将日期存储为 mongo 中的时间戳,例如,1564444800000000000
。我想检查时间戳是否介于 2021 年 7 月 1 日和 2021 年 7 月这两个日期之间。我使用 https://www.epochconverter.com/ 将这两个日期转换为时间戳。我首先获取了所有记录,并在遍历记录时进行了这样的检查
cDate := 1564444800000000000
if cDate > 1625167488000 && cDate < 1627759488000
log.Fatal("found one!")
但这似乎不起作用,因为我没有匹配。有更好的方法吗?
【问题讨论】:
【参考方案1】:我的意思是只看数字:
cDate := 1564444800000000000
1625167488000
1627759488000
我不明白一个比它应该在它们之间的数字多六位的数字怎么会在它们之间。即使我们将CDate
除以1000000
也会是
cDate := 1564444800000
1625167488000
1627759488000
而且它仍然小于这两者,所以它仍然不会在它们之间。但话虽如此,您很可能只需要将cDate
除以1000000
并且您的示例不是一个好示例(因为 1564444800000 是 2019 年 7 月 29 日)
【讨论】:
【参考方案2】:我建议转换一个日期,然后检查前后API,例如:
package main
import (
"fmt"
"time"
)
func main()
cDate := int64(1564444800000000000)
firstJuly := time.Date(2019, 7, 1, 0, 0, 0, 0, time.UTC)
thrirtyOneJuly := time.Date(2019, 7, 31, 0, 0, 0, 0, time.UTC)
date := time.Unix(0, cDate)
// fmt.Println(date) //will print 2019-07-30 00:00:00 +0000 UTC
fmt.Println("Is July?", date.After(firstJuly) && date.Before(thrirtyOneJuly))
将打印
Is July? true
See on playground
【讨论】:
以上是关于检查两个日期之间的时间戳的主要内容,如果未能解决你的问题,请参考以下文章