gpt4 book ai didi

ios - 在哪里创建时间戳以及如何在用户关闭并重新打开应用程序后引用它

转载 作者:行者123 更新时间:2023-11-30 12:02:36 24 4
gpt4 key购买 nike

我正在制作一个应用程序,用户单击红色按钮将时间戳更新为当前时间 -> 按钮变为绿色 -> 按钮在时间戳后 12 小时再次变为红色 -> 并且循环继续。这是我的代码:

var timestampHour = 8
var timestampDay = 30

func getCurrentTime() {

let user = FIRAuth.auth()?.currentUser?.uid

var timeToFirebase = 0
var timeToDayEnd = 0

let currentHour = Calendar.current.component(.hour, from: Date())
let currentDay = Calendar.current.component(.day, from: Date())
//self.nameLabel.text = String(currentHour) + " " + String(currentHour)


if (currentDay - timestampDay >= 2) {

self.ref?.child("users").child(user!).child("timeToWatch").setValue(0)
self.ref?.child("users").child(user!).child("streakStatus").setValue("n")

}

else if (abs(currentDay - timestampDay) == 1) {

timeToDayEnd = 24 - timestampHour
timeToFirebase = timeToDayEnd + currentHour

if (timeToFirebase >= 12) {

self.ref?.child("users").child(user!).child("timeToWatch").setValue(0)
self.ref?.child("users").child(user!).child("streakStatus").setValue("n")

}

else {

self.ref?.child("users").child(user!).child("timeToWatch").setValue(timeToFirebase)

}


}

else {

timeToFirebase = currentHour - timestampHour
if (timeToFirebase >= 12) {

self.ref?.child("users").child(user!).child("timeToWatch").setValue(0)
self.ref?.child("users").child(user!).child("streakStatus").setValue("n")

}

else {

self.ref?.child("users").child(user!).child("timeToWatch").setValue(timeToFirebase)

}

}

}

我已经能够弄清楚如何找到一个时间与另一个时间之间的时差并采取相应的行动。但是,如何在用户第一次打开应用程序时制作时间戳,然后在用户在时间戳后 12 小时打开应用程序时将其更新为当前时间戳?我总体上对如何制作时间戳感到困惑。

最佳答案

如果您需要 unix 时间格式的时间戳,可以使用以下代码:

let currentDate = Date()
let timeStamp = currentDate.timeIntervalSince1970 //returns something like 1509411424.038336

如果您需要一些逻辑来存储一些日期,然后检查存储后是否已经过了 12 小时,您可以使用以下代码:

    func storeDate(_ date: Date) {
UserDefaults.standard.set(date.timeIntervalSince1970, forKey: "storedDate")
}

func getStoredDate() -> Date? {
if let timeStamp = UserDefaults.standard.value(forKey: "storedDate") as? Double {
return Date(timeIntervalSince1970: timeStamp)
}
return nil
}

func checkCurrentDate()-> Bool {
if let storedDate = getStoredDate() {
let nextDate = Date(timeInterval: 60 * 60 * 12, since: storedDate)
if nextDate < Date() {
return true
} else {
return false
}
} else {
storeDate(Date())
return true
}
}

如果您需要查找两个日期之间的小时差,可以使用以下代码:

let aDate  = Date(timeIntervalSinceReferenceDate: 0)
let bDate = Date(timeIntervalSinceReferenceDate: 60 * 60 * 12)

let hoursDiff = Calendar.current.dateComponents([.hour], from: aDate, to: bDate).hour ?? 0

关于ios - 在哪里创建时间戳以及如何在用户关闭并重新打开应用程序后引用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47026118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com