时间转化 与最近时间的比较返回几天前,几个月前

本文详细介绍了如何将日期从一种时间单位转换到另一种时间单位,包括秒、分钟、小时、天、月和年,并提供了相应的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//一天有多少秒,一年有多少秒

#define SECONDS_PER_DAY (24*60*60)

#define SECONDS_PER_MONTH (30*24*60*60)

#define SECONDS_PER_YEAR (365*24*60*60)



//时间转换

-(NSString *)zhuTimeIntervalSinceNow_FormTheTime:(NSString *)theDate

{

    //如果是以北京时间为准的,就用北京时间转换。如果是以GMT时间为准的,就不用转换了,看服务器

    //    转换成 北京时间

   NSString *timeString;

    NSDateFormatter *formatter =PX_AUTORELEASE([[NSDateFormatteralloc] init]);

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

   NSDate *laDate = [formatter dateFromString:theDate];//string型转换为NSDate型(GMT时间)

    NSTimeInterval cha =ABS([laDatetimeIntervalSinceNow]) ;//以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时间间隔,是个负数,所以要用abs

    

    

//    如果是格林威治时间  --直接时间戳格式1366699141=(年-1970)*365*24*3600

//    NSTimeInterval late;

//    NSDate *dateNow = [NSDate date];//获取GMT时间,和北京时间不同

//    NSTimeInterval now = [dateNow timeIntervalSince1970];

//    

//    //如果是直接的时间戳格式-

//    late = [theDate doubleValue];

//    

//    NSString *timeString;

//    NSTimeInterval cha = now - late;


   if (cha/3600<1)//小于1小时

    {

       if (cha/60<1)

        {

            timeString = [NSStringstringWithFormat:@"%d分钟前",1];

        }

       else

        {

            timeString = [NSStringstringWithFormat:@"%f",cha/60];

            timeString = [timeStringsubstringToIndex:timeString.length-7];

            timeString = [NSStringstringWithFormat:@"%@分钟前",timeString];

        }

    }

   if (cha/3600>=1 && cha/3600<24)

    {

        timeString = [NSStringstringWithFormat:@"%f",cha/3600];

        timeString = [timeStringsubstringToIndex:timeString.length-7];

        timeString = [NSStringstringWithFormat:@"%@小时前",timeString];

    }

    if (cha/SECONDS_PER_DAY>=1 && cha/SECONDS_PER_DAY <30)

    {

        timeString = [NSStringstringWithFormat:@"%f",cha/SECONDS_PER_DAY];

        timeString = [timeStringsubstringToIndex:timeString.length-7];

        timeString = [NSStringstringWithFormat:@"%@天前",timeString];

    }

    if (cha/SECONDS_PER_DAY>=30 && cha/SECONDS_PER_DAY <365)

    {

        timeString = [NSStringstringWithFormat:@"%f",cha/SECONDS_PER_MONTH];

        timeString = [timeStringsubstringToIndex:timeString.length-7];

        timeString = [NSStringstringWithFormat:@"%@个月前",timeString];

    }

    if(cha/SECONDS_PER_DAY>=365)

    {

        timeString = [NSStringstringWithFormat:@"%f",cha/SECONDS_PER_YEAR];

        timeString = [timeStringsubstringToIndex:timeString.length-7];

        timeString = [NSStringstringWithFormat:@"%@年前",timeString];

    }

   return timeString;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值