2017-11-18 48 views
0

我知道这是一个奇怪的特定情况。但是我想从我的firebase数据库中提取一个字符串,其值为18-11-2017 10:41 AM,我想将其转换回日期,然后将其与当前日期进行比较,以查找自该时间戳以来总共有多少分钟。从Firebase获取日期作为字符串转换为日期并将该日期与当前日期进行比较,以分钟为单位查找差异

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 

所以从保存在我的火力点数据库(18-11-2017 10:30 AM)的日期,我想找到多少分钟从时间戳为当前的时间戳。假设当前时间戳为18-11-2017 11:45 AM,它应该返回75的值,因为它已经过去了一个小时15分钟。有谁知道这可以在Swift 3中完成吗?

感谢提前:)

回答

2

获取从火力的日期字符串

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

简单extention到字符串转换为日期与您的日期格式

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) 
} 
+0

您真了不起。这工作像一个魅力。谢谢 :) –

相关问题