从Parse创建的日期以前很快

在一个单元格中,我想在Parse服务器中显示NSDate的时间。 这是代码,但它不起作用。 什么都没有改变,数据没有被解析。

if let createdat = (object?["createdAt"] as? String){ let pastDate = Date(timeIntervalSinceNow: TimeInterval(createdat)!) cell.TimeAgo.text = pastDate.timeAgoDisplay() } extension Date { func timeAgoDisplay() -> String { let secondsAgo = Int(Date().timeIntervalSince(self)) let minute = 60 let hour = 60 * minute let day = 24 * hour let week = 7 * day if secondsAgo < minute { return "\(secondsAgo) sec ago" } else if secondsAgo < hour { return "\(secondsAgo / minute) min ago" } else if secondsAgo < day { return "\(secondsAgo / hour) hrs ago" } else if secondsAgo < week { return "\(secondsAgo / day) days ago" } return "\(secondsAgo / week) weeks ago" } } 

如果您只想要Date的Time Ago扩展,请转到答案的底部😊

我将向您展示一个示例,仅仅是在几秒钟之前和之后我将更新您的扩展程序。

注意:如果需要,您可以直接使用Pase中的日期:

 if let pastDate = (object?["createdAt"] as? Date){ cell.TimeAgo.text = pastDate.timeAgoDisplay() } 

示例如何使用Swift 3获取秒数:

第一:要获得秒数,我们需要检查是否有一分钟或更短时间,要获得当前日期减去一分钟,您可以写下:

 let minuteAgo = calendar.date(byAdding: .minute, value: -1, to: Date())! 

第二:现在比较两个日期! (如果你的扩展我们自己替换你的日期)并获得这两个日期之间的差异。

 if (minuteAgo < yourDate) { let diff = Calendar.current.dateComponents([.second], from: yourDate, to: Date()).second ?? 0 print("\(diff) sec ago") } 

这就是全部,现在你可以打印时间了!

所以你的扩展是这样的:(这是一个简单的扩展来获取时间)

 extension Date { func timeAgoDisplay() -> String { let calendar = Calendar.current let minuteAgo = calendar.date(byAdding: .minute, value: -1, to: Date())! let hourAgo = calendar.date(byAdding: .hour, value: -1, to: Date())! let dayAgo = calendar.date(byAdding: .day, value: -1, to: Date())! let weekAgo = calendar.date(byAdding: .day, value: -7, to: Date())! if minuteAgo < self { let diff = Calendar.current.dateComponents([.second], from: self, to: Date()).second ?? 0 return "\(diff) sec ago" } else if hourAgo < self { let diff = Calendar.current.dateComponents([.minute], from: self, to: Date()).minute ?? 0 return "\(diff) min ago" } else if dayAgo < self { let diff = Calendar.current.dateComponents([.hour], from: self, to: Date()).hour ?? 0 return "\(diff) hrs ago" } else if weekAgo < self { let diff = Calendar.current.dateComponents([.day], from: self, to: Date()).day ?? 0 return "\(diff) days ago" } let diff = Calendar.current.dateComponents([.weekOfYear], from: self, to: Date()).weekOfYear ?? 0 return "\(diff) weeks ago" } } 

要使用它,这非常简单:

 var now = Date() now.timeAgoDisplay()