时间戳转换为近距离时间状态

2017-09-15  本文已影响0人  金约21依代

简单时间戳转换

- (NSString *)timeFromTimeStep:(NSString *)timesStamp
{
    // 格式化时间
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:@"MM-dd HH:mm"];
    
    // 毫秒值转化为秒/1000,本身为秒则不除1000
    NSDate * date = [NSDate dateWithTimeIntervalSince1970:[timesStamp doubleValue]];
    NSString *dateString = [formatter stringFromDate:date];
    return dateString;
}

时间戳转换为近距离时间状态

+ (NSString *)timeTextWithTimesStamp:(double)timesStamp
{
    NSTimeInterval now = [[NSDate date]timeIntervalSince1970];
    double distanceTime = now - timesStamp;
    NSString * distanceStr;
    
    NSDate * beDate = [NSDate dateWithTimeIntervalSince1970:timesStamp];
    NSDateFormatter * df = [[NSDateFormatter alloc]init];
    [df setDateFormat:@"HH:mm"];
    NSString * timeStr = [df stringFromDate:beDate];
    
    [df setDateFormat:@"dd"];
    NSString * nowDay = [df stringFromDate:[NSDate date]];
    NSString * lastDay = [df stringFromDate:beDate];
    
    if (distanceTime < 60)
    {//小于一分钟
        distanceStr = @"刚刚";
    }
    else if (distanceTime <60*60)
    {//时间小于一个小时
        distanceStr = [NSString stringWithFormat:@"%ld分钟前",(long)distanceTime/60];
    }
    else if(distanceTime <24*60*60 && [nowDay integerValue] == [lastDay integerValue])
    {//时间小于一天
        distanceStr = [NSString stringWithFormat:@"%ld小时前",(long)distanceTime/60/60];
    }
    else if(distanceTime<24*60*60*2 && [nowDay integerValue] != [lastDay integerValue])
    {
        
        if ([nowDay integerValue] - [lastDay integerValue] ==1 || ([lastDay integerValue] - [nowDay integerValue] > 10 && [nowDay integerValue] == 1))
        {
            distanceStr = [NSString stringWithFormat:@"昨天 %@",timeStr];
        }
        else
        {
            [df setDateFormat:@"MM-dd HH:mm"];
            distanceStr = [df stringFromDate:beDate];
        }
        
    }
    else if(distanceTime <24*60*60*365)
    {
        [df setDateFormat:@"MM-dd HH:mm"];
        distanceStr = [df stringFromDate:beDate];
    }
    else
    {
        [df setDateFormat:@"yyyy-MM-dd HH:mm"];
        distanceStr = [df stringFromDate:beDate];
    }
    return distanceStr;
}
上一篇下一篇

猜你喜欢

热点阅读