这只是一个关于Swift时代的问题。我有一个时间戳,我想验证它是否已经超过当前时间24小时。我尝试了几个选项,这就是我的代码目前的位置,但我被卡住了。任何提示都将不胜感激!
let timeStampsOfUser = timeStampsOfUser.value as Any as! Double
print(timeStampsOfUser)
let timeInMiliSecDate = Date()
let timeInMiliSec = Double (timeInMiliSecDate.timeIntervalSince1970 * 1000)
print(timeInMiliSec)
if timeInMiliSec - timeStampsOfUser > 86400000 {
// how do I get the total count of timestamps which have been more than 24 hours and vice versa?
}
更新:但是,我是如何找到计数的?与中一样,有多少时间戳在24小时以内?感谢
let timeStampsOfUser = timeStampsOfUser.value as Any as! Double
print(timeStampsOfUser)
let timeInMiliSecDate = Date()
let timeInMiliSec = Double (timeInMiliSecDate.timeIntervalSince1970 * 1000)
print(timeInMiliSec)
let timeDone = timeInMiliSec - timeStampsOfUser > 86400000
if timeDone == true {
print("more than 24 hours")
} else {
print("less than 24 hours")
}
86400000
是错误的方法永远不要使用86400数学。一天可能有23或25个小时。
创建一个具有两个函数的Date
扩展,一个init
方法,它以毫秒为单位获取时间戳,另一个函数用于检查给定日期是否在过去24小时内(实际上差异小于一天(。CCD_ 4与CCD_。
extension Date {
init(timestampInMilliseconds: Double) {
self.init(timeIntervalSince1970: timestampInMilliseconds / 1000.0)
}
func isDateInLast24Hours() -> Bool {
Calendar.current.dateComponents([.day], from: self, to: .now).day! == 0
}
}
并使用
let timeStamp = 1665584000000.0 // 12. Oct 2022, 16:13
let date = Date(timestampInMilliseconds: timeStamp)
let isInLast24Hours = date.isDateInLast24Hours()
要检查多个时间戳,请使用循环或map