由于 24 小时有 86400000 毫秒,因此可以安全地调用:
timestamp % 86400000
在特定日期获得毫秒传递?timestamp
是以毫秒表示的 unix 纪元,例如1480771537000
。
我想知道这是否是一种安全的技术,因为闰秒时不时地被添加和减少?上面的代码是否总是在一天中正确返回毫秒,而与timestamp
是什么无关?
是的,您可以使用timestamp % 86400000
来判断时间戳是否表示一天的午夜/开始(假设时间戳是自大纪元以来的毫秒数,而不是秒)。
根据这个 Stack Overflow 答案,就 Unix 时间而言,一天中总是有 86400000 毫秒,即使实际上我们有时会添加闰秒,以便有些日子长一秒。
纪元时间是格林威治标准时间。您需要一个包含您的时区的时间戳。我为此使用以下代码:
time_t t = time(NULL);
t = timegm(localtime(&t));
if(t % 86400 == 0) {
}