Getting the difference between two Dates (months/days/hours/minutes/seconds) in Swift

前端 未结 19 2331
时光说笑
时光说笑 2020-11-22 02:16

I am trying to get the difference between the current date as NSDate() and a date from a PHP time(); call for example: NSDate(timeIntervalSin

19条回答
  •  萌比男神i
    2020-11-22 02:56

       func dateDiff(dateStr:String) -> String {
                var f:NSDateFormatter = NSDateFormatter()
                f.timeZone = NSTimeZone.localTimeZone()
                f.dateFormat = "yyyy-M-dd'T'HH:mm:ss.SSSZZZ"
    
                var now = f.stringFromDate(NSDate())
                var startDate = f.dateFromString(dateStr)
                var endDate = f.dateFromString(now)
                var calendar: NSCalendar = NSCalendar.currentCalendar()
    
                let calendarUnits = NSCalendarUnit.CalendarUnitWeekOfMonth | NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitHour | NSCalendarUnit.CalendarUnitMinute | NSCalendarUnit.CalendarUnitSecond
                let dateComponents = calendar.components(calendarUnits, fromDate: startDate!, toDate: endDate!, options: nil)
    
                let weeks = abs(dateComponents.weekOfMonth)
                let days = abs(dateComponents.day)
                let hours = abs(dateComponents.hour)
                let min = abs(dateComponents.minute)
                let sec = abs(dateComponents.second)
    
                var timeAgo = ""
    
                if (sec > 0){
                    if (sec > 1) {
                        timeAgo = "\(sec) Seconds Ago"
                    } else {
                        timeAgo = "\(sec) Second Ago"
                    }
                }
    
                if (min > 0){
                    if (min > 1) {
                        timeAgo = "\(min) Minutes Ago"
                    } else {
                        timeAgo = "\(min) Minute Ago"
                    }
                }
    
                if(hours > 0){
                    if (hours > 1) {
                        timeAgo = "\(hours) Hours Ago"
                    } else {
                        timeAgo = "\(hours) Hour Ago"
                    }
                }
    
                if (days > 0) {
                    if (days > 1) {
                        timeAgo = "\(days) Days Ago"
                    } else {
                        timeAgo = "\(days) Day Ago"
                    }
                }
    
                if(weeks > 0){
                    if (weeks > 1) {
                        timeAgo = "\(weeks) Weeks Ago"
                    } else {
                        timeAgo = "\(weeks) Week Ago"
                    }
                }
    
                print("timeAgo is===> \(timeAgo)")
                return timeAgo;
            }
    

提交回复
热议问题