在快速4中比较日期和日期的问题

时间:2018-04-17 10:53:38

标签: ios swift

检查日期是过去的日期日需要进行比较。

我试过这个

let calendar = NSCalendar.current

//Get just MM/dd/yyyy from current date
let components = calendar.dateComponents([], from:  Date())

//Convert to NSDate
let pastDates = self.calendar.selectedDates.filter { $0 <  calendar.date(from: components as DateComponents)! }

4 个答案:

答案 0 :(得分:2)

更新以下行,为您提供date object

let components = calendar.dateComponents([.month, .day, .year], from:  Date())

目前,您未在数组中提供任何date组件,因此您无法获得date object

答案 1 :(得分:0)

我没有理解你的问题是什么,但希望这可以帮助你:

let beforeDateStr = "04/12/2018"
let todayDate = Date()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

let beforeDateFormatted = dateFormatter.date(from: beforeDateStr)

if Calendar.current.compare(todayDate, to: beforeDateFormatted!, toGranularity: .day) == .orderedDescending {
    print("before date day is lesser than current date")
} else {
    print("before date day is equal or greater than todays date")
}

答案 2 :(得分:0)

要查找日期更小或更大:

您可以使用这个简单的代码:

let differenceBetweenTwoDate = Calendar.current.dateComponents([.day], from: previousDate, to: Date())

    if differenceBetweenTwoDate.day! > 0{

        print("date is bigger")
    }else{

        print("date is smaller")
    }

希望它有帮助!

答案 3 :(得分:0)

这是您可以在当前日期和时间添加小时或天数的方法 -

calendar.date(byAdding: .hour, value: 1, to: currentDate)
calendar.date(byAdding: .day, value: 7, to: currentDate)

这就是你如何比较2个日期并计算小时,分钟和天数

let calendar = Calendar.current
                    let dateFormatter = DateFormatter()
                    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
                    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
                    let anyDataTime = dateFormatter.date(from: anotherDateTime)

                    let components = calendar.dateComponents([.minute], from: Date(), to: anyDataTime!)
                    let hour = (Double(components.minute!) / 60.0).rounded()