如何在日期时间选择器中设置日期和时间限制,从现在开始到1个月?

时间:2018-04-15 10:46:02

标签: ios swift date datepicker

我现在有一个帖子讨论了Minimum and maximum date in UIDatePicker

中的最短和最长日期时间

但我现在是编程的初学者,我对日期和时间对象有点困惑。我尝试过,但我无法正确设置日期时间选择器。所以我想将我的日期时间选择器设置为最小和最大限制时间。

最小值为Now,最长为1个月。我必须使用什么代码?提前致谢

https://i.stack.imgur.com/RxXUX.png

enter image description here

3 个答案:

答案 0 :(得分:1)

你可以尝试

self.datePicker.minimumDate = Date()

self.datePicker.maximumDate =  Calendar.current.date(byAdding: .day, value: 30 , to:Date())!

self.datePicker.maximumDate =  Calendar.current.date(byAdding: .month, value: 1 , to:Date())!

答案 1 :(得分:1)

我建议使用Calendar的日期数学技能。它计算下个月的同一天。如果该日期不存在(例如2月30日),则返回下一个最接近的可用日期。

let now = Date()
let calendar = Calendar.current
let dayComponents = calendar.dateComponents([.day], from: now)
let maximumDate = calendar.nextDate(after: now, matching: dayComponents, matchingPolicy: .nextTime)

答案 2 :(得分:0)

要在将来的一个月内获得Date(考虑到不同的月份长度),您可以使用Date.date(byAdding:value:to:),例如如在this answer中那样。您可以获取结果并将其设置为选择器的maximumDate