Swift编码与毫秒-如何计算



这只是一个关于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

最新更新