最近做一个需求,是帖子列表页,根据发帖时间的不同,显示不同的内容:
时间区间是今天之内发的帖子,则显示 今天 时:分;
昨天发的帖子,则显示 昨天 时:分;
前天发的帖子,则显示 前天 时:分;
如果是前天之前的帖子,并且是今年的,则显示 月-日 时:分
如果是更早之前的帖子,则显示 年-月-日 时:分
最开始,我对需求理解有偏差,以为今天,就是24小时之内的,昨天则是24到48小时内的,前天是48到72小时,今年是365*24小时内,其他的都是更早之前。代码如下:
NSCalendar *calendar = [NSCalendar currentCalendar];
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d = [calendar components:unitFlags fromDate:self toDate:[NSDate date] options:0];
NSLog(@"%@",d);
这里是一个NSDate的category,所以第三行那边有个参数是self。用NSCalendar这个类,把添加帖子的时候和当前时间进行比较,并且把差值拆分成年,月,日,时&#x