Swift UIDatePicker限制未来的年份而不是月份和日期

时间:2018-09-20 10:00:07

标签: ios swift uidatepicker

StatusBar

将禁用将来的日期 我只想限制将来的年份。用户可以选择将来的月份和日期。 如何做到。任何帮助将不胜感激。

预先感谢

3 个答案:

答案 0 :(得分:2)

我相信这就是您想要的:

let picker = UIDatePicker()
let calendar = Calendar.current
let currentYear = calendar.component(.year, from: Date())
guard let maximumDate = calendar.date(from: DateComponents(year: currentYear + 1))?.addingTimeInterval(-1) else {
    fatalError("Couldn't get next year")
}
picker.maximumDate = maximumDate
print(picker.maximumDate ?? "")

在日期选择器中,最大日期应为December 31st, 2018 at 23:59:59

答案 1 :(得分:1)

您可以将UIDatePicker限制为仅允许当年的将来日期,可以构造与明年年初相对应的Date对象,并将其用作maximumDate

let thisYear = Calendar.current.component(.year, from: Date())
datePicker.maximumDate = Calendar.current.date(from: DateComponents(year: thisYear+1))

答案 2 :(得分:1)

获取当前日期并从中提取年份。 (使用日历功能date(from:)。)为该年12月31日创建DateComponents。使用它来创建一个日期。使日期选择器的最大日期。这样一来,用户就可以选择当年的任何日期,而不提前选择年份。