如何在 SWIFT 2.0 中将日期选择器中的当前日期限制为未来 15 天



我正在尝试这段代码,但它不起作用。谢谢大家。我正在使用带有选择最小日期的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。

相关内容

最新更新