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