代码片段之时间标记
2014-11-18 15:18
218 查看
开源中国客户端中无论是综合里面文章,还是问答里问题还是动弹离得说说,每一条后面都会注释有时间,比如“10分钟之前” “2小时前” “5天前” 或者直接是时间显示“2013-2-9”等,这些时间在很多应用里都是必须的,为的是给用户一个时间感,知道信息是最新的,也方便根据时间查阅以往信息;
这些时间从API解析下来的时间格式都为 yyyy-MM-dd HH:mm:ss(比如:2013-03-09 09:51:22),通过在API上获取文章时间后经过算法转换而得到,在客户端源码的Tool.m中+ (NSString *)intervalSinceNow: (NSString *) theDate 实现这一个方法: 如果信息发表在1小时之前显示分钟,一天之内的信息显示小时,10天之内按天显示,10天之外安所发表时间进行显示:
[cpp] view
plaincopy
+ (NSString *)intervalSinceNow: (NSString *) theDate
{
NSDateFormatter *date=[[NSDateFormatter alloc] init];
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *d=[date dateFromString:theDate];
NSTimeInterval late=[d timeIntervalSince1970]*1;
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval now=[dat timeIntervalSince1970]*1;
NSString *timeString=@"";
NSTimeInterval cha=now-late;
// 发表在一小时之内
if (cha/3600<1) {
if (cha/60<1) {
timeString = @"1";
}
else
{
timeString = [NSString stringWithFormat:@"%f", cha/60];
timeString = [timeString substringToIndex:timeString.length-7];
}
timeString=[NSString stringWithFormat:@"%@分钟前", timeString];
}
// 在一小时以上24小以内
else if (cha/3600>1&&cha/86400<1) {
timeString = [NSString stringWithFormat:@"%f", cha/3600];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@小时前", timeString];
}
// 发表在24以上10天以内
else if (cha/86400>1&&cha/864000<1)
{
timeString = [NSString stringWithFormat:@"%f", cha/86400];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@天前", timeString];
}
// 发表时间大于10天
else
{
// timeString = [NSString stringWithFormat:@"%d-%"]
NSArray *array = [theDate componentsSeparatedByString:@" "];
// return [array objectAtIndex:0];
timeString = [array objectAtIndex:0];
}
return timeString;
}
这段代码可以用到自己工程里直接就可以用了,返回的timeString即为需时间段时间;
Demo下载地址:https://github.com/XFZLDXF/MyDemo.git
这些时间从API解析下来的时间格式都为 yyyy-MM-dd HH:mm:ss(比如:2013-03-09 09:51:22),通过在API上获取文章时间后经过算法转换而得到,在客户端源码的Tool.m中+ (NSString *)intervalSinceNow: (NSString *) theDate 实现这一个方法: 如果信息发表在1小时之前显示分钟,一天之内的信息显示小时,10天之内按天显示,10天之外安所发表时间进行显示:
[cpp] view
plaincopy
+ (NSString *)intervalSinceNow: (NSString *) theDate
{
NSDateFormatter *date=[[NSDateFormatter alloc] init];
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *d=[date dateFromString:theDate];
NSTimeInterval late=[d timeIntervalSince1970]*1;
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval now=[dat timeIntervalSince1970]*1;
NSString *timeString=@"";
NSTimeInterval cha=now-late;
// 发表在一小时之内
if (cha/3600<1) {
if (cha/60<1) {
timeString = @"1";
}
else
{
timeString = [NSString stringWithFormat:@"%f", cha/60];
timeString = [timeString substringToIndex:timeString.length-7];
}
timeString=[NSString stringWithFormat:@"%@分钟前", timeString];
}
// 在一小时以上24小以内
else if (cha/3600>1&&cha/86400<1) {
timeString = [NSString stringWithFormat:@"%f", cha/3600];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@小时前", timeString];
}
// 发表在24以上10天以内
else if (cha/86400>1&&cha/864000<1)
{
timeString = [NSString stringWithFormat:@"%f", cha/86400];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@天前", timeString];
}
// 发表时间大于10天
else
{
// timeString = [NSString stringWithFormat:@"%d-%"]
NSArray *array = [theDate componentsSeparatedByString:@" "];
// return [array objectAtIndex:0];
timeString = [array objectAtIndex:0];
}
return timeString;
}
这段代码可以用到自己工程里直接就可以用了,返回的timeString即为需时间段时间;
Demo下载地址:https://github.com/XFZLDXF/MyDemo.git
相关文章推荐
- 开源中国iOS客户端学习——(九)代码片段之时间标记
- 开源中国iOS客户端学习——(九)代码片段之时间标记
- 代码片段 -- Java计算代码执行消耗时间
- thinkphp5统计本月每天注册的人数代码片段记录(注册时间为时间戳)
- 常用php代码片段-脚本执行时间设置,时区设置,session开
- 时间处理的一些代码片段
- sublime 代码片段如何加上当前时间,代码片段如何使用
- 计算代码片段运行时间的方法 System.Diagnostics.Stopwatch
- 几个代码片段-计算程序运行时间+获得当前目录+生成MD5
- [Java Code] 时间维度循环生成代码片段
- 时间区间伪代码片段
- #学习笔记#(62)处理时间及时间格式的js代码片段
- 做个时间标记,开始阅读android window管理的代码
- [代码片段]YEAH!连通域标记和计数
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
- [python实用代码片段]python获取当前时间的前一天,前一周,前一个月
- 代码片段 -- Java计算代码执行消耗时间
- php 时间戳代码片段
- python代码片段——获得三天前时间