Swift UIDatePicker 限制未来年份而不是月份和日期
Swift UIDatePicker restrict future year not month and date
datePicker.maximumDate = Date()
将禁用未来日期
我想限制未来年份 only.user 可以 select 未来月份和日期。
如何做this.any帮助将不胜感激。
提前致谢
您可以限制 UIDatePicker
只允许当前年份的未来日期,您可以构造一个 Date
对应明年年初的对象并将其用作 maximumDate
.
let thisYear = Calendar.current.component(.year, from: Date())
datePicker.maximumDate = Calendar.current.date(from: DateComponents(year: thisYear+1))
获取当前日期并从中提取年份。 (使用日历函数 date(from:)
。)为当年的 12 月 31 日创建 DateComponents。用它来创建一个日期。使其成为日期选择器的最大日期。这将使用户可以选择当年的任何日期,但不能提前一年。
我相信这就是你想要的:
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
。
datePicker.maximumDate = Date()
将禁用未来日期 我想限制未来年份 only.user 可以 select 未来月份和日期。 如何做this.any帮助将不胜感激。
提前致谢
您可以限制 UIDatePicker
只允许当前年份的未来日期,您可以构造一个 Date
对应明年年初的对象并将其用作 maximumDate
.
let thisYear = Calendar.current.component(.year, from: Date())
datePicker.maximumDate = Calendar.current.date(from: DateComponents(year: thisYear+1))
获取当前日期并从中提取年份。 (使用日历函数 date(from:)
。)为当年的 12 月 31 日创建 DateComponents。用它来创建一个日期。使其成为日期选择器的最大日期。这将使用户可以选择当年的任何日期,但不能提前一年。
我相信这就是你想要的:
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
。