2017-05-03 30 views

回答

0
-(void) dateTextField:(id)sender 
{ 
    UIDatePicker *picker = (UIDatePicker*) dateOfBirthField.inputView; 
    // [picker setMaximumDate:[NSDate date]]; 
    [picker setMinimumDate:[NSDate date]]; 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    NSDate *eventDate = picker.date; 
    [dateFormat setDateFormat:@"yyyy/MM/dd"]; 

    NSString *dateString = [dateFormat stringFromDate:eventDate]; 
    dateOfBirthField.text = [NSString stringWithFormat:@"%@",dateString]; 
} 
+0

我正在使用MDDatePicker第三方库不是UIDatePicker。 –

+0

你在哪里设置最短日期。遵循该方法或属性并在库中搜索最大日期 –

0

MDDatePickerDialog类使用MDCalendar来管理它的最小日期。如果你看一下MDCalendar实施,你会发现下面的实现在initialize方法:

_maximumDate = [NSDateHelper mdDateWithYear:2037 month:12 day:31]; 

第一次尝试这个日期设置为您所选择的静态值,看看这是必需的变量,那么你可以将这个对MDCalendar的头文件进行属性声明以使此maximumDate变量可以在类之外访问。作为下一步,您可以使用MDDatePickerDialog中的房产以设置最短日期的相同方式设置最长日期。

一部分从MDDatePicker.m文件

- (void)setMinimumDate:(NSDate *)minimumDate { 
    self.calendar.minimumDate = minimumDate; 
} 

P.S.请记住处理日期验证日期应该是有效的,最大日期不应该早于最低日期等。

希望帮助!

0

你只需要添加日期,无论你想最大限度地发挥作用,在这里我只需要从当前日期中选择一个星期的日期,所以这里是我写的代码,你在哪里显示日期picker只需添加一行:

- _datePicker.maximumDate = [[NSDate date] dateByAddingTimeInterval:60*60*24*7]; ; 

之后,将此方法搜索到MDCalender.m文件中并用此代码替换。

- (BOOL)shouldSelectDate:(NSDate *)date { 
    BOOL result; 
    if ([self.maximumDate timeIntervalSince1970] >= date.timeIntervalSince1970) { 
     result = 
     (date.timeIntervalSince1970 >= self.minimumDate.timeIntervalSince1970); 
     return result; 
    } 
    return result; 
} 

它为我工作。谢谢

相关问题