关闭经过的时间

时间:2018-05-04 12:03:42

标签: ios swift xcode uicollectionview

我使用 collectionView 来显示时间价格。现在看起来像这样。
iphone screenshot

我需要关闭经过的时间。例如在screenShot时间是 14:51 ,我需要关闭填充< / strong>颜色经过时间(灰色) 14:00 之前的时间。它是从 1:00 13:00

对于加载价格和时间,我在-i

中使用后端和firestore

这是我的代码:

func getDataFromBackend()

1 个答案:

答案 0 :(得分:0)

假设您的price.timeInt,以便10等。您无法仅比较时间,因此请在此时附加今天的日期字符串。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let now = Date()
let todayDateStr = dateFormatter.string(from: now)
let priceTime = todayDateStr + " \(19):00"
print(priceTime)
  

输出:04-05-2018 19:00

现在从这个dateString中创建一个日期对象。

dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
if let priceTimeDateObj = dateFormatter.date(from: priceTime) {
    if priceTimeDateObj < now {
        print("Close this")
    }
}

或者更简单的方法是将时间转换为秒并进行比较。

dateFormatter.dateFormat = "HH"
let hours = Int(dateFormatter.string(from: now)) ?? 0
dateFormatter.dateFormat = "mm"
let minutes = Int(dateFormatter.string(from: now)) ?? 0

/// This is current time in seconds for today. Example: 18:24 = 66240
let seconds = (hours * 60 * 60) + (minutes * 60) 

let priceTimeSeconds = (priceItem.time * 60 * 60)
if  priceTimeSeconds < seconds {
    print("Close this")
}