从Firebase转换为日期获取日期字符串,并将该日期与当前日期进行比较,以查找以分钟为单位的差异

时间:2017-11-18 11:13:28

标签: ios swift

我知道这是一个奇怪的具体。但我想从我的firebase数据库中提取一个值为18-11-2017 10:41 AM的字符串,我想将其转换回Date,然后将其与当前日期进行比较,以查找自该时间戳以来的总分钟数。

let dateFormatter = DateFormatter()
let date1s = dateFormatter.date(from: break1s) //USED TO CONVERT STRING BACK TO DATE

let elapsed = Date().timeIntervalSince(date1s)

print((Int(elapsed) % 3600) / 60) //CONVERT SECONDS TO MINUTES

因此,从我的firebase数据库(18-11-2017 10:30 AM)中存储的日期开始,我想查找从该时间戳到当前时间戳的分钟数。假设当前时间戳为18-11-2017 11:45 AM它应该返回值75,因为它是一小时15分钟。有谁知道在Swift 3中如何做到这一点?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

从字符串中的firebase获取日期

let dateString = "18-11-2017 10:41 AM"

使用日期格式将String转换为Date的简单扩展

extension String{
    var date : Date?{
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy h:mm a"
        return dateFormatter.date(from: self)
    }
}

比较2个日期的分钟数

extension Date {
    func minutes(from date: Date) -> Int {
        return Calendar.current.dateComponents([.minute], from: date, to: self).minute ?? 0
    }
}

将您的日期与当前日期进行比较

if let date = dateString.date{
   let minutes = Date().minutes(from: date) 
}