• 计算时间戳和现在时间对比返回数字


    /**

     *  是否为今年

     */

    - (BOOL)isThisYear

    {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitYear;

        

        // 1.获得当前时间的年月日

        NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];

        

        // 2.获得self的年月日

        NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

        

        return nowCmps.year == selfCmps.year;

    }

     

    /**

     *  是否为今天

     */

    - (BOOL)isToday

    {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitDay | NSCalendarUnitMonthNSCalendarUnitYear;

        

        // 1.获得当前时间的年月日

        NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];

        

        // 2.获得self的年月日

        NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

        return

        (selfCmps.year == nowCmps.year) &&

        (selfCmps.month == nowCmps.month) &&

        (selfCmps.day == nowCmps.day);

    }

     

    /**

     *  是否为昨天

     */

    - (BOOL)isYesterday

    {

        NSDate *nowDate = [[NSDate date] dateWithYMD];

        

        NSDate *selfDate = [self dateWithYMD];

        

        // 获得nowDateselfDate的差距

        NSCalendar *calendar = [NSCalendar currentCalendar];

        NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];

        return cmps.day == 1;

    }

    + (NSString *)stringWithTimeStr:(NSString *)timeStr

    {

        //    1.创建时间格式化工具类

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

        

        // 2.格式时间

        // 指定时间的格式

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

        

        formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"];

        NSDate *uploadTime = [formatter dateFromString:timeStr];

        // 利用服务器的和本地时间进行对比

        NSDateComponents *cmps = [uploadTime deltaWithNow];

        

        if ([uploadTime isThisYear]) {

            // 是今年

            if ([uploadTime isToday]) {

                // 是今天

                if (cmps.hour >= 1) {

                    //其它

                    formatter.dateFormat = @"HH:mm";

                    return [formatter stringFromDate:uploadTime];

                    

                } else if (cmps.minute <= 1) {

                    // 刚刚

                    return @"刚刚";

                } else {

                    // 1个小时内

                    return [NSString stringWithFormat:@"%ld分钟前", (long)cmps.minute];

                }

            } else if ([uploadTime isYesterday]) {

                // 是昨天

                formatter.dateFormat = @"昨天";

                return [formatter stringFromDate:uploadTime];

                

            } else {

                // 其它天

                formatter.dateFormat = @"MM-dd";

                return [formatter stringFromDate:uploadTime];

            }

        } else {

            // 不是今年

            formatter.dateFormat = @"YY-MM-dd";

            return [formatter stringFromDate:uploadTime];

        }

        return @"1分钟以前";

    }

  • 相关阅读:
    自定义 radio 的样式,更改选中样式
    【Vue中的坑】vue项目中动态绑定src不显示图片解决方法
    js复制内容到剪切板
    js实现鼠标单击或者双击事件
    代码修改shader Properties uniform变量
    关于unity中BindChannels的理解
    shader Category
    Unity手游之路自动寻路Navmesh之高级主题
    Unity手游之路自动寻路Navmesh之入门
    Unity 自动寻路Navmesh之跳跃,攀爬,斜坡
  • 原文地址:https://www.cnblogs.com/runningsoul/p/5088959.html
Copyright © 2020-2023  润新知