記事が公開された日付はありますが、現在の時刻からどれだけ前に公開されたかを取得する必要があります。
したがって、記事が午前 8 時 45 分に公開され、同じ日の午前 9 時 45 分である場合、「1 時間前」という UILabel が必要です。
現在、「2013 年 5 月 5 日午後 5 時 35 分」のような日付を取得するようにフォーマットされた日付を取得しています。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
Feed *feedLocal = [headlinesArray objectAtIndex:indexPath.row];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMMM d, yyyy h:mma"];
NSString *dateString = [df stringFromDate:feedLocal.published];
cell.publishedLabel.text = dateString;
}
それを「1時間前」のようなものに変換するにはどうすればよいですか? ありがとう!
編集
少なくとも前の時間を取得する必要がある現在の方法は次のとおりです。
-(NSString *)timeAgo {
NSDate *todayDate = [NSDate date];
double ti = [self timeIntervalSinceDate:todayDate];
ti = ti * -1;
if (ti < 1) {
return @"1s";
} else if (ti < 60) {
return @"1m";
} else if (ti < 3600) {
int diff = round(ti / 60);
return [NSString stringWithFormat:@"%dm", diff];
} else if (ti < 86400) {
int diff = round(ti / 60 / 60);
return[NSString stringWithFormat:@"%dh", diff];
} else if (ti < 2629743) {
int diff = round(ti / 60 / 60 / 24);
return[NSString stringWithFormat:@"%dd", diff];
} else if (ti < 31556926) {
int diff = round(ti / 60 / 60 / 24 / 30);
return [NSString stringWithFormat:@"%dmo", diff];
} else {
int diff = round(ti / 60 / 60 / 24 / 30 / 12);
return [NSString stringWithFormat:@"%dy", diff];
}
}