ios – 从日期开始显示Swift时间(NSDate)

前端之家收集整理的这篇文章主要介绍了ios – 从日期开始显示Swift时间(NSDate)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在一个单元格中,我想在Parse服务器中显示NSDate的时间.这是代码,但它不起作用.什么都没有改变,数据没有被解析.
  1. if let createdat = (object?["createdAt"] as? String){
  2. let pastDate = Date(timeIntervalSinceNow: TimeInterval(createdat)!)
  3. cell.TimeAgo.text = pastDate.timeAgoDisplay()
  4. }
  5.  
  6.  
  7. extension Date {
  8. func timeAgoDisplay() -> String {
  9. let secondsAgo = Int(Date().timeIntervalSince(self))
  10.  
  11. let minute = 60
  12. let hour = 60 * minute
  13. let day = 24 * hour
  14. let week = 7 * day
  15.  
  16. if secondsAgo < minute {
  17. return "\(secondsAgo) sec ago"
  18. } else if secondsAgo < hour {
  19. return "\(secondsAgo / minute) min ago"
  20. } else if secondsAgo < day {
  21. return "\(secondsAgo / hour) hrs ago"
  22. } else if secondsAgo < week {
  23. return "\(secondsAgo / day) days ago"
  24. }
  25.  
  26. return "\(secondsAgo / week) weeks ago"
  27. }
  28. }

解决方法

If you just want a Time Ago extension for Date go to the bottom of the answer ?

我会告诉你一个例子,只是为了几秒钟之前,我会更新你的扩展程序.

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

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

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

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

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

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

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

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

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

  1. extension Date {
  2. func timeAgoDisplay() -> String {
  3.  
  4. let calendar = Calendar.current
  5. let minuteAgo = calendar.date(byAdding: .minute,to: Date())!
  6. let hourAgo = calendar.date(byAdding: .hour,to: Date())!
  7. let dayAgo = calendar.date(byAdding: .day,to: Date())!
  8. let weekAgo = calendar.date(byAdding: .day,value: -7,to: Date())!
  9.  
  10. if minuteAgo < self {
  11. let diff = Calendar.current.dateComponents([.second],from: self,to: Date()).second ?? 0
  12. return "\(diff) sec ago"
  13. } else if hourAgo < self {
  14. let diff = Calendar.current.dateComponents([.minute],to: Date()).minute ?? 0
  15. return "\(diff) min ago"
  16. } else if dayAgo < self {
  17. let diff = Calendar.current.dateComponents([.hour],to: Date()).hour ?? 0
  18. return "\(diff) hrs ago"
  19. } else if weekAgo < self {
  20. let diff = Calendar.current.dateComponents([.day],to: Date()).day ?? 0
  21. return "\(diff) days ago"
  22. }
  23. let diff = Calendar.current.dateComponents([.weekOfYear],to: Date()).weekOfYear ?? 0
  24. return "\(diff) weeks ago"
  25. }
  26. }

要使用它,这非常简单:

  1. var now = Date()
  2. now.timeAgoDisplay()

猜你在找的iOS相关文章