代码
NSDate *destinationDate=[nowDate dateByAddingTimeInterval:[dataModel.countdowntime floatValue]];
components=[calendar components:unitFlags fromDate:destinationDate];
counterDownTimer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeDownDownMethod:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:counterDownTimer forMode:NSDefaultRunLoopMode];
[counterDownTimer fire];
其中destinationDate 为目标日期timeDownDownMethod:方法
-(void)timeDownDownMethod:(NSTimer*)timer
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *fireDate = [calendar dateFromComponents:components];//目标时间
NSDate *today = [NSDate date];//当前时间
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d = [calendar components:unitFlags fromDate:today toDate:fireDate options:0];//计算时间差
NSString * day,*hour,*minute,*second;
day=[NSString stringWithFormat:@"%ld",(long)[d day]];
hour=[NSString stringWithFormat:@"%ld",(long)[d hour]];
minute=[NSString stringWithFormat:@"%ld",(long)[d minute]];
second=[NSString stringWithFormat:@"%ld",(long)[d second]];
if (day.length==1){
day=[NSString stringWithFormat:@"0%ld",(long)[d day]];
}if (hour.length==1)
{
hour=[NSString stringWithFormat:@"0%ld",(long)[d hour]];
}if (minute.length==1)
{
minute=[NSString stringWithFormat:@"0%ld",(long)[d minute]];
}if(second.length==1)
{
second=[NSString stringWithFormat:@"0%ld",(long)[d second]];
}
timeLabel.text = [NSString stringWithFormat:@"%@天%@小时%@分%@秒",day, hour,minute,second];//倒计时显示
timeString=timeLabel.text;
}