0

我已经用 PHP 完成了数百次,但现在我正在学习 xcode,但我无法弄清楚。我正在尝试在这样的 tableView 单元格上显示 Unix 时间戳->“10 分钟 24 秒前”、“4 小时、2 分钟前”或“2 天 4 小时前”。有任何想法吗?

4

4 回答 4

2

我遇到了同样的事情,这是我为 unix 时间戳想出的:

-(NSString *)timeSinceNow:(float)timestamp{
NSMutableString *time = [[NSMutableString alloc]init];
NSTimeInterval ti = [[NSDate date] timeIntervalSince1970];
float diff = ti - timestamp;
//days
if (diff<60*60*24*365) {
    [time appendString:[NSString stringWithFormat:@"%d day", (int)floor(diff/(60*60*24))]];
}
//hours
if (diff<60*60*24) {
    [time appendString:[NSString stringWithFormat:@"%d hour", (int)floor(diff/(60*60))]];
}
//minutes
if (diff<60*60) {
    [time appendString:[NSString stringWithFormat:@"%d minute", (int)floor(diff/(60))]];
}
//seconds
if (diff<60) {
    [time appendString:[NSString stringWithFormat:@"%d second", (int)floor(diff)]];
}
//years
if (diff>=60*60*24*365) {
    [time appendString:[NSString stringWithFormat:@"%d year", (int)floor(diff/(60*60*24*365))]];
}
//check if its not singular (plural) - add 's' if so
if (![[time substringToIndex:2] isEqualToString:@"1 "]) {
    [time appendString:@"s"];
}
return time;
}
于 2013-09-09T00:56:06.920 回答
0

试试这个第三方库:https ://github.com/billgarrison/SORelativeDateTransformer

您可以通过 CocoaPods 或使用 README 中的说明安装它。

如果您想推出自己的解决方案,您可以使用 获取自当前时间以来的秒数+[NSDate dateWithTimeIntervalSinceReferenceDate:],传入当前时间的参考日期,+[NSDate date]. 通过使用适当的单位划分结果,您应该能够获得所需的粒度级别。

SORelativeDateTransformer通过巧妙地使用-[NSBundle localizedStringForKey:value:table:].

于 2013-02-14T23:46:24.907 回答
0

NSDate *now = [NSDate 日期];

应该确实建立差异,然后将其绑定到单元格

于 2013-02-14T23:50:27.997 回答