【问题标题】:How to set Date and Time intervals in UIPicker.DatePicker Mode?如何在 UIPicker.DatePicker 模式下设置日期和时间间隔?
【发布时间】:2016-02-04 10:29:59
【问题描述】:

我喜欢用一些限制来限制我的日期时间选择器。

在告诉我的要求之前,请参考我的代码:

datepicker = [[UIDatePicker alloc]init];
    datepicker.datePickerMode = UIDatePickerModeDateAndTime;
    datepicker.minimumDate=[NSDate date];
    [datepicker addTarget:self action:@selector(dateTextField:) forControlEvents:UIControlEventValueChanged];
    [_txtDateTime setInputView:datepicker];

我知道它的基本日期和时间选择器控制器。

但我需要的是从当前日期到 +15 天只需要显示,时间应该是上午 8:00 到晚上 10:00 只需要显示。

告诉我实现它的方法,谢谢:)。

【问题讨论】:

  • 从文档中可以看出,UIDatePicker 不提供此类功能。请改用UIPickerView
  • 好的,我会尝试 UIPickerView 兄弟@A-Live
  • 那么最小和最大日期@A-Live的用途是什么,我对此部分有疑问
  • 有时你想让只选择未来的时间,只从本周开始,只从过去一个月开始。这些值不会影响可用选项之间的间隔,只会影响选项范围。
  • @A-Live 看到下面的答案逻辑,但它不起作用:(。所以现在我决定给 uialerviewcontroller 如果它存在我的要求。

标签: ios objective-c nsdate uidatepicker nscalendar


【解决方案1】:

找出 15 天后的日期并将其添加为最大日期 需要检查时间, 用于计算天数

 NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];

[dateformate setDateFormat:kDateFormat];
NSDate *now = [NSDate date];
NSDate *Daysafter = [now dateByAddingTimeInterval:15*24*60*60];

对于时间,我认为您也可以直接设置最小值和最大值

【讨论】:

  • Daysafter 是您需要设置为选取器的最大日期的日期,方法与设置最小值相同 [datePicker setMaximumDate:Daysafter];
  • 并且 kDateFormat 是您要使用的格式,假设 @"dd-MM-yyyy HH:mm:ss" @kishore plz 如果对您有帮助,请点赞答案
  • i 设置最大值和最小值,即使它从当前日期滚动超过 15 天,并且从现在回来一天。
  • datePicker= [[UIDatePicker alloc] initWithFrame:pickerFrame]; [datePicker setAlpha:1]; [datePicker addTarget:self action:nil forControlEvents:UIControlEventValueChanged]; datePicker.datePickerMode = UIDatePickerModeDate; [datePicker setMinimumDate:[NSDate date]]; NSDateFormatter *dateformate=[[NSDateFormatter alloc]init]; [日期格式 setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; NSDate *now = [NSDate 日期]; NSDate *Daysafter = [现在 dateByAddingTimeInterval:15*24*60*60]; [datePicker setMaximumDate:Daysafter];它完美地工作我自己创造了它
  • datepicker = [[UIDatePicker alloc]init]; datepicker.datePickerMode = UIDatePickerModeDateAndTime; NSDate *now = [NSDate 日期]; NSDate *Daysafter =[[NSDate alloc] initWithTimeInterval:15*24*60*60 sinceDate:now]; datepicker.minimumDate=现在; datepicker.maximumDate=天数之后; [datepicker addTarget:self action:@selector(dateTextField:) forControlEvents:UIControlEventValueChanged]; [_txtDateTime setInputView:datepicker];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多