iOS 计算某个时间到现在是多少月/天/时的代码

#prmark mark - 传入1970年到特定时间的秒,算出距离现在的时间


+ (NSString *)caculateTime:(long)dateTime {

    

    //时间格式转换器

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

    [formatter setDateFormat:@"YYYY-MM-dd HH:mm"];

    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];

    [formatter setTimeZone:timeZone];

    //取出现在的时间

    NSDate *nowDate = [NSDate date];

    //1970年距离现在多少秒

    long timeNow = [nowDate timeIntervalSince1970];

//    //返回以1970/01/01 GMT为基准,然后过了secs秒的时间

//    NSDate *getDate = [NSDate dateWithTimeIntervalSince1970:[dateString longLongValue]];

    

    //两者时间差

    long differenceDate = timeNow - dateTime;

    

    long month=((long)differenceDate)/(3600*24*30);

    long days=((long)differenceDate)/(3600*24);

    long hours=((long)differenceDate)%(3600*24)/3600;

    long minute=((long)differenceDate)%(3600*24)/60;

    

    //时间计算结果

    NSString *resultString;

    

    if(month!=0){

        resultString = [NSString stringWithFormat:@"%@%ld%@",@"",month,@"个月前"];

        

    }else if(days!=0){

        resultString = [NSString stringWithFormat:@"%@%ld%@",@"",days,@"天前"];

        

    }else if(hours!=0){

        resultString = [NSString stringWithFormat:@"%@%ld%@",@"",hours,@"小时前"];

        

    }else {

        resultString = [NSString stringWithFormat:@"%@%ld%@",@"",minute,@"分钟前"];

    }

    return resultString;

}






传入一个NSString类型的日期 

格式如newsDate = @"2013-08-09 17:01"; 

或者newsDate = @"2013/08/09 17:01"; 

返回如果有一个月,就不返回天,依次类推。 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
-(NSString *)getUTCFormateDate:(NSString *)newsDate
{
//    newsDate = @"2013-08-09 17:01";
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
     [dateFormatter setDateFormat:@ "yyyy-MM-dd HH:mm" ];
     
     NSLog(@ "newsDate = %@" ,newsDate);
     NSDate *newsDateFormatted = [dateFormatter dateFromString:newsDate];
     NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@ "UTC" ];
     [dateFormatter setTimeZone:timeZone];
 
     NSDate* current_date = [[NSDate alloc] init];
     
     NSTimeInterval  time =[current_date timeIntervalSinceDate:newsDateFormatted]; //间隔的秒数
     int month=(( int ) time )/(3600*24*30);
     int days=(( int ) time )/(3600*24);
     int hours=(( int ) time )%(3600*24)/3600;
     int minute=(( int ) time )%(3600*24)/60;
     NSLog(@ "time=%d" ,( double ) time );
     
     NSString *dateContent;
     
     if (month!=0){
         
         dateContent = [NSString stringWithFormat:@ "%@%i%@" ,@ "   " ,month,@ "个月前" ];
 
     } else if (days!=0){
         
          dateContent = [NSString stringWithFormat:@ "%@%i%@" ,@ "   " ,days,@ "天前" ];
     } else if (hours!=0){
         
          dateContent = [NSString stringWithFormat:@ "%@%i%@" ,@ "   " ,hours,@ "小时前" ];
     } else {
     
         dateContent = [NSString stringWithFormat:@ "%@%i%@" ,@ "   " ,minute,@ "分钟前" ];
     }
     
//    NSString *dateContent=[[NSString alloc] initWithFormat:@"%i天%i小时",days,hours];
     
     
     [current_date release];
     [dateFormatter release];
     return dateContent;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值