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

标签 ios swift

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

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,因为它已经过了 1 小时 15 分钟。有谁知道如何在 Swift 3 中完成此操作?

提前致谢:)

最佳答案

从 String 中获取 firebase 的日期

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

使用您的日期格式将字符串转换为日期的简单扩展

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

比较两个日期的分钟数

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

关于ios - 从 Firebase 获取日期作为字符串转换为日期并将该日期与当前日期进行比较以查找分钟差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47365370/

相关文章:

ios - 当 self 在转义闭包中很弱时,在 self 函数中调用 self 参数

swift - 在哪些情况下 SKNode 上的 runAction 无法完成?

ios - AVAssetWriter:开始写入时的瞬间滞后

ios - 如何获取外部 URL 缩略图 iOS

ios - MailComposer didFinishWith 结果在 Swift 3.0 中不起作用

swift - 如何在 SpriteKit swift 中将 NSTimer 作为参数传递给函数

ios - 如何在 IBDesignable 文件中设置高度限制?

ios - 带参数的 swift 3 选择器

ios - Titanium:ScrollView 加载缓慢

ios - 如何隐藏或删除ui组件并移动其他组件以占据隐藏或删除的空间?