我正在尝试这段代码,但它不起作用。谢谢大家。我正在使用带有选择最小日期的uidatepicker。但在日期选择器 Swift 2.0 中需要当前日期和额外的 15 天。
override func viewDidLoad() {
let datePickerView:UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = datePickerView
datePickerView.minimumDate = datePickerView.date
//datePickerView.maximumDate = datePickerView.date
datePickerView.addTarget(self, action: #selector(BookAppointmentView.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)
}
func datePickerValueChanged(sender:UIDatePicker)->NSDate {
let baseDate:NSDate = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
DatePickerField.text = dateFormatter.stringFromDate(sender.date)
print("date of bookAppointment(DatePickerField.text!)")
return newDate!
}
有多种方法可以实现此目的。dateByAddingTimeInterval 是一个,您可以在其中以秒为单位添加时间:
datepickerView.minimumDate = NSDate() // current date
datepickerView.maximumDate = NSDate().dateByAddingTimeInterval(1296000) // date + 15 days
您还可以执行以下操作:
datepickerView.minimumDate = NSDate() // current date
let maxDateComponent = NSDateComponents()
maxDateComponent.day = //days you want to add
datePickerView.maximumDate = NSCalendar.currentCalendar().dateByAddingComponents(maxDateComponent, toDate: NSDate(), options: NSCalendarOptions.init(rawValue: 0))
其中以天为单位添加时间。
我希望这个扩展方法有所帮助
extension NSDate {
func dateByAddingDays(days:Int) -> NSDate? {
let c:NSDateComponents = NSDateComponents()
c.day = days;
return NSCalendar.currentCalendar().dateByAddingComponents(c, toDate: self, options: [])
}
}
但在某些情况下,我使用了dateByAddingComponents。