根据日期计算发布时间段(NSCalendar)

Posted 宁静暖风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据日期计算发布时间段(NSCalendar)相关的知识,希望对你有一定的参考价值。

// 返回发布时间dateWithString

- (NSString *)backReleaseTimeWithDateStr:(NSString *)dateWithString{

    // 获取当前NSCalendar

    NSCalendar *calendar = [NSCalendar currentCalendar];

    // 设置日期格式

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    //入参 发布日期

    NSDate *releaseTimer = [formatter dateFromString:dateWithString];

    

    if ([calendar isDateInToday:releaseTimer]) { // 今天

        //当前时间

        NSDate *nowDate = [NSDate date];

        // 获得日期之间的间隔

        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

        NSDateComponents *components = [calendar components:unit fromDate:releaseTimer toDate:nowDate options:0];

        

        if (components.hour >= 1) {

//            formatter.dateFormat = @"今天 HH:mm";

//            return [formatter stringFromDate:releaseTimer];

            return [NSString stringWithFormat:@"%zd小时前",components.hour];

        }else if(components.minute >= 1){

            return [NSString stringWithFormat:@"%zd分钟前",components.minute];

        }else{

            return @"刚刚";

        }

    }else if([calendar isDateInYesterday:releaseTimer]){  // 昨天

        formatter.dateFormat = @"昨天 HH:mm";

        return [formatter stringFromDate:releaseTimer];

    }else// 其他

        formatter.dateFormat = @"MM-dd HH:mm";

        return [formatter stringFromDate:releaseTimer];

    }

    return dateWithString;

}

以上是关于根据日期计算发布时间段(NSCalendar)的主要内容,如果未能解决你的问题,请参考以下文章

如何在iphone中计算当前日期的天数[关闭]

NSCalendar 获取现在和年底之间的日期差异给出零月份

UIDatePicker,根据今天的日期设置最大和最小日期

如何设置日期选择器以单独显示 1910-2010 之间的年份

利用NSCalendar类实现日期的比较

NSDate/NSCalendar 问题