仅在 UIDatePicker 中设置特定月份 Swift 5
Setting only specific months in UIDatePicker Swift 5
在我的项目中,我想应用这样的条件,用户可以 select 从当前日期起仅 3 个月。
即我想显示一个日期选择器,其中包含月份和日期,范围为 90 天。
例如。 November 就这样而已,November December January 应该显示在 Date picker 中以供挑选。
我怎样才能做到这一点?
UIDatePicker 具有 minimumDate
和 maximumDate
属性。使用它们来设置您希望允许用户输入的日期范围。
编辑:
@wonder 发布了计算未来 3 个月日期的代码:
futureDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())
或者,如果需要,您可以在当前日期基础上增加 90 天:
futureDate = Calendar.current.date(byAdding: .day, value: 90, to: Date())
将 datePickerMode
设置为 .date
让用户只选择日期,而不是时间。
我不知道如何删除年份 select 或者,尽管如果您 select 90 天的日期范围都属于同一年,他们将无法select 一年以外的年份。
(请注意,从 10 月开始,90 天的日期范围包括 2 个不同年份的日期,因此无论如何您都需要年份。)
正如 wonder 在评论中所说,您可以使用 UIPickerView 创建自己的月份和日期选择器,但您需要添加逻辑以根据月份更改天数,并排除当月的天数那是过去的事。
您可以尝试这样的操作:
datePicker.maximumDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())
在我的项目中,我想应用这样的条件,用户可以 select 从当前日期起仅 3 个月。
即我想显示一个日期选择器,其中包含月份和日期,范围为 90 天。
例如。 November 就这样而已,November December January 应该显示在 Date picker 中以供挑选。
我怎样才能做到这一点?
UIDatePicker 具有 minimumDate
和 maximumDate
属性。使用它们来设置您希望允许用户输入的日期范围。
编辑:
@wonder 发布了计算未来 3 个月日期的代码:
futureDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())
或者,如果需要,您可以在当前日期基础上增加 90 天:
futureDate = Calendar.current.date(byAdding: .day, value: 90, to: Date())
将 datePickerMode
设置为 .date
让用户只选择日期,而不是时间。
我不知道如何删除年份 select 或者,尽管如果您 select 90 天的日期范围都属于同一年,他们将无法select 一年以外的年份。
(请注意,从 10 月开始,90 天的日期范围包括 2 个不同年份的日期,因此无论如何您都需要年份。)
正如 wonder 在评论中所说,您可以使用 UIPickerView 创建自己的月份和日期选择器,但您需要添加逻辑以根据月份更改天数,并排除当月的天数那是过去的事。
您可以尝试这样的操作:
datePicker.maximumDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())