iOS時間個人化設定,ios個人化設定

來源:互聯網
上載者:User

iOS時間個人化設定,ios個人化設定

現在在很多項目中,不會直接顯示時間,很多時候都是顯示“剛剛”,”XX分鐘前”,等等字樣,那麼他們是怎麼實現的呢 ?1.建立一個NSDate的類目:NSDate+XMGExtensionNSDate+XMGExtension.h 檔案#import <Foundation/Foundation.h>@interface NSDate (XMGExtension)-(NSDateComponents *)deltaFrom:(NSDate *)from;/** 是否是今年 */-(BOOL)isThisYear;/** 是否是今天 */-(BOOL)isToday;/** 是否是昨天 */-(BOOL)isYesterday;@endNSDate+XMGExtension.m#import "NSDate+XMGExtension.h"@implementation NSDate (XMGExtension)-(NSDateComponents *)deltaFrom:(NSDate *)from{       //    日曆    NSCalendar *calendar = [NSCalendar currentCalendar];          //    比較時間    NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitMonth |NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ;    return [calendar components:unit fromDate:from toDate:self options:0];}-(BOOL)isThisYear{    //    日曆    NSCalendar *calendar = [NSCalendar currentCalendar];       NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];    NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self];       return  nowYear == selfYear;}//-(BOOL)isToday{//    //    日曆//    NSCalendar *calendar = [NSCalendar currentCalendar];//   //    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;//   //    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];//   //    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];////    return nowCmps.year == selfCmps.year//    && nowCmps.month == selfCmps.month//    && nowCmps.day == selfCmps.day;//   ////}-(BOOL)isToday{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";       NSString *nowString = [fmt stringFromDate:[NSDate date]];    NSString *selfString = [fmt stringFromDate:self];       return [nowString isEqualToString:selfString];}-(BOOL)isYesterday{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";       NSDate *nowDate = [fmt dateFromString:[fmt stringFromDate:[NSDate date]]];    NSDate *selfDate = [fmt dateFromString:[fmt stringFromDate:self]];                      NSCalendar *calendar = [NSCalendar currentCalendar];    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;    NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];       return cmps.year == 0    && cmps.month == 0    && cmps.day == 1;         }@end在model中使用 create_time getter方法XMGTopic.h檔案/** 發帖時間 */@property(nonatomic,copy)NSString *create_time;XMGTopic.m檔案#import "XMGTopic.h"@implementation XMGTopic-(NSString *)create_time{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";    NSDate *create = [fmt dateFromString:_create_time];       if (create.isThisYear) { //今年        if (create.isToday) {   //今天            NSDateComponents *cmps = [[NSDate date] deltaFrom:create];            if (cmps.hour>=1) { //時間差距>=1小時                return [NSString stringWithFormat:@"%zd小時前",cmps.hour];            }else if(cmps.minute>=1){ //時間差距>=1分分鐘                return [NSString stringWithFormat:@"%zd分鐘前",cmps.minute];            }else{//時間差距<1分分鐘                return  @"剛剛";            }                   }else if(create.isYesterday){  //昨天            fmt.dateFormat= @"昨天 HH:mm";            return [fmt stringFromDate:create];                   }else{            fmt.dateFormat= @"MM-dd HH:mm";            return  [fmt stringFromDate:create];        }           }else{ //不是今年        return _create_time;    }   }@end在view中XMGTopicCell.m檔案中-(void)setTopic:(XMGTopic *)topic{    _topic = topic;    topic.sina_v = arc4random_uniform(10)%2;   //    新浪加V    self.sinaVView.hidden = !topic.isSina_v;      //    設定頭像    [self.profileImageView sd_setImageWithURL:[NSURL URLWithString:topic.profile_image] placeholderImage:[UIImage imageNamed:@"defaultUserIcon"]];//    設定暱稱    self.nameLabel.text = topic.name;   //    設定文章的建立時間    self.createTimeLabel.text = topic.create_time;            //    設定按鈕文字    [self setupButtonTitle:self.dingButtton count:topic.ding placeholder:@"頂"];    [self setupButtonTitle:self.caiButton count:topic.cai placeholder:@"踩"];    [self setupButtonTitle:self.shareButton count:topic.repost placeholder:@"分享"];    [self setupButtonTitle:self.commentButton count:topic.comment placeholder:@"評論"];    }

具體效果

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.