我使用 collectionView 来显示时间和价格。现在看起来像这样。
我需要关闭经过的时间。例如在screenShot时间是 14:51 ,我需要关闭和填充< / strong>颜色经过时间(灰色) 14:00 之前的时间。它是从 1:00 到 13:00 。
对于加载价格和时间,我在-i
这是我的代码:
func getDataFromBackend()
答案 0 :(得分:0)
假设您的price.time
是Int
,以便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")
}