日期选择器滚动到过去的日期,即使最小日期设置为当前日期

     2023-04-18     274

关键词:

【中文标题】日期选择器滚动到过去的日期,即使最小日期设置为当前日期【英文标题】:Date picker scrolls to past date, even though minimum date is set to current date 【发布时间】:2013-03-09 04:11:00 【问题描述】:

iOS 6.1 中的奇怪行为我已将日期选择器的最小日期设置为当前日期,如下所示

NSDate *currentTime = [NSDate date];
[picker setMinimumDate:currentTime];

但是当我运行应用程序时,我可以滚动到过去的日期,虽然它没有被选中,但选择器不会跳回当前日期。它仅在 iOS 6.1 版本中发生,并且在休息选择器中表现正常。

【问题讨论】:

检查我编辑的答案.. 【参考方案1】:

我遇到了和你一样的问题,只手动将日期设置为最大日期(在这种情况下,我将限制设置为当前日期):

- (IBAction)pickerValueChanged:(id)sender 

    dispatch_async(dispatch_get_main_queue(), ^
        UIDatePicker *datePicker = (UIDatePicker *)sender;

        if ([self.datePicker.date compare:[NSDate date]] == NSOrderedDescending) 

            datePicker.date = [NSDate date];
        

    );

当日期选择器中的日期值更改时触发此功能。您可以在此处设置最大值或最小值。

【讨论】:

这是一个问题还是一个答案?如果您有任何问题,请提出新问题***.com/questions/ask 回答一个额外的问题 ;) 请删除您的“奖励”问题(这样您不会得到任何答案,并且会混淆实际答案) - 如果您真的想回答您的问题,请提出一个新问题。跨度> 实际上datepicker返回的是前一个日期而不是冻结的日期。所以比较是不可能的【参考方案2】:

试试这个代码

 NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
 NSDate *currentDate = [NSDate date];
 NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
 [comps setYear:30];
 NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
 [comps setYear:-30];
 NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

 [datePicker setMaximumDate:maxDate];
 [datePicker setMinimumDate:minDate];

【讨论】:

你真的得到了像你的答案一样的当前日期吗..? @Prem 我已经尝试过您的解决方案,但它不起作用。这是 iOS 6.1 中的错误吗? code4app.net/ios/Local-Notifier/4fb5e7c06803fa3a7f000000我从这个链接得到了样本..如果有任何错误请教我..thks @NitinGohel 是的,我只在 iOS 6.1 中遇到问题,其余一切都很好。 @Prem 我已经下载了您发送的通知程序的源代码。在那个应用程序中,我可以滚动到过去的日期。我的要求是当用户滚动到过去的日期选择器时必须将他带回当前日期。由于日期选择器没有委托方法来处理这种情况,我该如何控制它?主要的是,这种奇怪的行为只存在于 iOS 6.1 中。【参考方案3】:

您必须设置最小和最大日期,例如:

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];

NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[datePicker setMinimumDate:minDate];

【讨论】:

【参考方案4】:

该属性是一个 NSDate 对象或 nil(默认),这意味着没有最大日期。此属性以及 minimumDate 属性允许您指定有效的日期范围。如果最小日期值大于最大日期值,则忽略这两个属性。在倒数计时器模式 (UIDatePickerModeCountDownTimer) 中,最小和最大日期也会被忽略。

尝试同时设置有效的最小和最大日期。 它对我有用。

【讨论】:

如何在 android 日期选择器中将特定选定日期设置为最小日期? (爪哇)

】如何在android日期选择器中将特定选定日期设置为最小日期?(爪哇)【英文标题】:HowcanIsetthespecificselecteddatetomindateinandroiddatepicker?(java)【发布时间】:2021-07-0814:26:09【问题描述】:我有2个日期选择器,一个是开始日期选择... 查看详情

如何在 android 日期选择器中将特定选定日期设置为最小日期? [复制]

】如何在android日期选择器中将特定选定日期设置为最小日期?[复制]【英文标题】:HowcanIsetthespecificselecteddatetomindateinandroiddatepicker?[duplicate]【发布时间】:2021-07-0812:15:25【问题描述】:我有2个DatePicker,一个是开始日期选择器,... 查看详情

引导日期选择器禁用没有当前日期的过去日期

】引导日期选择器禁用没有当前日期的过去日期【英文标题】:Bootstrapdatepickerdisablingpastdateswithoutcurrentdate【发布时间】:2013-04-1322:26:33【问题描述】:我想禁用当前日期之前的所有过去日期,而不是当前日期。我正在尝试通过... 查看详情

如何限制用户从日期选择器中选择过去的日期?

】如何限制用户从日期选择器中选择过去的日期?【英文标题】:Howtorestrictuserfromchoosingpastdatesfromdatepicker?【发布时间】:2014-08-1810:15:55【问题描述】:我正在使用日期选择器来设置警报,但这也允许用户在当前日期之前设置日... 查看详情

iPhone,如何在代码中将日期选择器的最小日期设置为今天?

】iPhone,如何在代码中将日期选择器的最小日期设置为今天?【英文标题】:iPhone,howdoIsetmydatepickersminimumdatetotodayincode?【发布时间】:2011-04-2217:55:37【问题描述】:我需要在代码中将日期选择器的最小日期设置为今天?【问题讨... 查看详情

日期选择器不应该接受小于当前日期的过去日期

】日期选择器不应该接受小于当前日期的过去日期【英文标题】:DatePickerShouldnotacceptpastdateswhicharelessthenthecurrentdateinandroid【发布时间】:2012-02-2720:49:12【问题描述】:我正在开发一个类似提醒的应用程序,在这个用户可以根据... 查看详情

斑马日期选择器方向 - 过去到某个日期

】斑马日期选择器方向-过去到某个日期【英文标题】:zebradatepickerdirection-pastuptocertaindate【发布时间】:2015-02-2818:37:54【问题描述】:我想设置Zebradatepicker插件,使其启用所有过去的日期直到某个指定日期。我发现了这个***post... 查看详情

将 WPF 日期选择器的默认日期设置为当前日期

】将WPF日期选择器的默认日期设置为当前日期【英文标题】:SettheDefaultDateofWPFDatePickertoCurrentDate【发布时间】:2011-04-0909:59:48【问题描述】:我有一个WPF数据网格,其中一列是日期列。所以我使用了DataTemplateColumn如下<my:DataGrid... 查看详情

将输入类型日期最小值设置为当前日期角度 12

】将输入类型日期最小值设置为当前日期角度12【英文标题】:Settinginputtypedateminvaluetocurrentdateangular12【发布时间】:2021-09-1719:07:53【问题描述】:我有一个输入日期选择器,我想将其最小值设置为当前日期&lt;inputtype="date&... 查看详情

Bootstrap 时间和日期选择器设置最小日期

】Bootstrap时间和日期选择器设置最小日期【英文标题】:BootstrapTime&DatePickerSetMinimumDate【发布时间】:2021-10-2710:03:58【问题描述】:**更新**-我没有意识到django-bootstrap-datepicker-plus和TempusDominusBootstrap4是不同的。我并没有意识到... 查看详情

引导日期选择器将日期设置为当前日期

】引导日期选择器将日期设置为当前日期【英文标题】:bootstrapdatepickersetdatetocurentdate【发布时间】:2014-12-0718:54:32【问题描述】:我想自动设置今天的日期,但它不起作用。<divclass="input-appenddate"><inputtype="text"data-date-forma... 查看详情

datatimepicker怎样设置可以不能选择当前日期之后的时间

参考技术A日期选择器的选项,有一个minDate(最小日期),如果你把minDate设置为当前日期,它不能在选举日之前。minDate是一个日期对象,如新的Date()2,它可以是一个整数,例如,3代表3天,-1昨天,0代表了当今3,它可以是一... 查看详情

Android 1.5 中 onDateChanged() 中具有最大和最小日期的日期选择器?

】Android1.5中onDateChanged()中具有最大和最小日期的日期选择器?【英文标题】:DatePickerwithmaxandminimumdateinonDateChanged()inAndroid1.5?【发布时间】:2012-01-3008:25:26【问题描述】:我正在使用android1.5中的DatePicker。我正在尝试设置最大和... 查看详情

如何将最小 DatePicker 日期设置为当前日期

】如何将最小DatePicker日期设置为当前日期【英文标题】:HowtosetminimumDatePickerdatetocurrentdate【发布时间】:2012-11-1915:38:47【问题描述】:我想将用户可以在DatePicker中选择的最短日期设置为当前日期。我试过这个:DatePickerdatePicker=(... 查看详情

如何在日期选择器角度禁用过去的日期

】如何在日期选择器角度禁用过去的日期【英文标题】:Howtodisablethepastdateindatepickerangular【发布时间】:2017-04-0915:54:57【问题描述】:我有一个带日期选择器的输入字段。我需要用户仅从当前日期中选择日期,过去的日期不应该... 查看详情

禁用日期选择器过去的日期和时间

】禁用日期选择器过去的日期和时间【英文标题】:Disabledatepickerpastdate&time【发布时间】:2015-11-0121:35:57【问题描述】:我正在使用datepicker,我喜欢人们无法选择今天之前的日期和时间。我使用“minDate:0”来禁用过去的日... 查看详情

根据下拉值设置 2 个日期选择器的最小日期和最大日期

】根据下拉值设置2个日期选择器的最小日期和最大日期【英文标题】:Setthemindateandmaxdateof2datepickersbasedondropdownvalue【发布时间】:2019-02-0701:55:04【问题描述】:我有2个日期选择器和一个下拉列表,我想根据下拉选择设置第二个... 查看详情

在日期选择器上禁用过去的日期

】在日期选择器上禁用过去的日期【英文标题】:disablepastdatesondatepicker【发布时间】:2013-03-2309:09:50【问题描述】:如何在datetimepicker上禁用当前日期的过去日期?我尝试了几篇类似问题的帖子,但无法实现,以下是我尝试过的... 查看详情