2010-03-14 2 views

Antwort

7

NSDates enthalten sowohl das Datum und die Uhrzeit. Aus der Dokumentation:

NSDate-Objekte stellen einen einzelnen Zeitpunkt dar.

Das folgende Beispiel hat das aktuelle Datum und die Uhrzeit als Minimalwert und die Zeit eine Stunde von nun als Maximalwert (um es zu testen nur in die viewDidLoad jeden UIViewController fallen):

// Time right now 
NSDate *minDate = [NSDate new]; 
// One hour from now 
NSDate *maxDate = [[NSDate alloc] initWithTimeIntervalSinceNow:60*60]; 

UIDatePicker *picker = [UIDatePicker new]; 
[picker setDatePickerMode:UIDatePickerModeDateAndTime]; 
[picker setMinimumDate:minDate]; 
[picker setMaximumDate:maxDate]; 
[[self view] addSubview:picker]; 
[super viewDidLoad]; 

Sie können mehr über NSDate auf dem Dev Center lesen.

+0

Danke Paulo. Ja, ich bin mir bewusst, der oben und meine MinDate und MaxDate NSDate Objekte enthalten die Zeit, aber die UIDatePicker nur die Grenzen durch die Datumseinstellung. Mit anderen Worten, wenn ich mich auf das heutige Datum um 8 Uhr morgens einstelle, verhindert das, dass ich das Datum auf gestern setze, aber ich kann immer noch eine frühere Zeit wählen ... zum Beispiel 6 Uhr morgens. – CBGrey

+0

Das ist sehr seltsam. Wenn Sie minDate einige Stunden zuvor in ein NSDate ändern, sollten Sie keine frühere Zeit auswählen können. Was passiert in meinem Fall, wenn ich 6 Uhr morgens abhole, ist, dass der Picker wieder auf die minimal gültige Zeit um 8 Uhr morgens animiert. Haben Sie eine Codebeispiel haben? –

+1

Nun, ich bin froh zu hören, dass es so funktioniert, wie ich denke, es sollte. Ich bin unglücklich zu denken, ich habe ein Problem in meinem Code :) Lassen Sie mich es überprüfen und sehen, ob ich eine relevante Probe herausziehen kann. Danke für Ihre anhaltende Hilfe. – CBGrey

1
NSDateFormatter *FormatDate = [[[NSDateFormatter alloc] init] autorelease]; 
[FormatDate setDateFormat:@"MMMM d y"]; 

NSString *date1=[FormatDate stringFromDate:[theDatePicker date]]; 
NSString *today=[FormatDate stringFromDate:[NSDate date]]; 
NSTimeInterval secondsPerDay = 24 * 60 * 60; 
NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay]; 
NSString *tommorow=[FormatDate stringFromDate:tomorrow]; 
[pickerViewPopup dismissWithClickedButtonIndex:0 animated:YES]; 
if ([date1 isEqualToString:today]||[date1 isEqualToString:tommorow]) { 
    NSDateFormatter *FormatDate = [[[NSDateFormatter alloc] init] autorelease]; 
    [FormatDate setDateFormat:@"MMM dd,yyyy"]; 
    currentdate.text = [FormatDate stringFromDate:[theDatePicker date]]; 
Verwandte Themen