ios - 更改 timeAgo 使系统过期

标签 ios swift nsdate

在我当前的项目中,我使用了一个扩展程序来显示帖子发布了多长时间。使用此扩展程序:

extension NSDate {
    var timeAgo: String {
        let minute = 60
        let hour = 60 * minute
        let day = 24 * hour
        let secondsAgo = Int(NSDate().timeIntervalSinceDate(self))
        if secondsAgo < 0            { return  "later"                           }
        if secondsAgo == 0           { return "now"                              }
        if secondsAgo == 1           { return "1 second ago"                     }
        if secondsAgo < minute       { return "\(secondsAgo) seconds ago"        }
        if secondsAgo < (2 * minute) { return "1 minute ago"                     }
        if secondsAgo < hour         { return "\(secondsAgo/minute) minutes ago" }
        if secondsAgo < 2 * hour     { return "1 hour ago"                       }
        if secondsAgo < day          { return "\(secondsAgo / hour) hours ago"   }
        let formatter = NSDateFormatter()
        formatter.dateFormat = "M/d/yy"
        return formatter.stringFromDate(self)
    }
}

这就是我为帖子设置上传时间戳的方式:

imageCell?.uploadedTimeLabel.text = createdAt[indexPath.item].timeAgo

但是我怎样才能制作一个过期系统呢?那个用户可以设置expires in: 24 hours,然后在帖子里会说“Expires in 10 hours”,“Expires in 8 minutes”之类的?当过期达到 0 时,帖子将被删除。有什么想法吗?

最佳答案

我只编写了部分代码,在代码注释中几乎没有提及待办事项列表。

NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"dd/MM/yyyy HH:mm a"];
    [format setTimeZone:[NSTimeZone systemTimeZone]];
    NSDictionary *dictPost1=[[NSDictionary alloc] initWithObjects:@[@"post one",@"14/03/2016 04:15 pm"] forKeys:@[@"postName",@"timeStapmp"]];

     NSDictionary *dictPost2=[[NSDictionary alloc] initWithObjects:@[@"post two",@"14/03/2016 03:15 pm"] forKeys:@[@"postName",@"timeStapmp"]];

    NSArray *arrposts=[[NSArray alloc] initWithObjects:dictPost1,dictPost2, nil];
    for (NSDictionary *dictPost in arrposts) {
        NSDate *postedDate=[format dateFromString:[dictPost objectForKey:@"timeStapmp"]];
        NSLog(@"difference=%f in miliseconds",[postedDate timeIntervalSinceNow]);
        //To-do 1.convert millisecond difference into hour and mintue
        //To-do 2. subtract converted hour from 10, reaming time to expire
    }

关于ios - 更改 timeAgo 使系统过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35983925/

相关文章:

ios - 垂直对齐 UILabel 中的文本 (xcode)

objective-c - 获取当前日期的 NSDate - 3 个月

iphone - 如何比较 NSDates 以查找数组中最早和最晚的日期?

ios - UITableViewDelegate : reduce repeated code by adding default implementations, 有什么更好的主意吗?

ios - 当 allowsPickingMultipleItems = true 时,MPMediaPickerController 不指示选择

ios - 无法在子类 UITextField 中设置属性占位符的文本颜色

objective-c - 以日/月/年格式显示特定日期的倒计时

ios - Swift 不在 CAGradientLayer 上调用类 init 方法

ios - Web服务完成后的完成 block ?

ios - 对数组中具有相同属性值的元素进行分组