到目前为止的Swift TimeInterval

时间:2017-03-30 20:02:24

标签: swift xcode

我已经将Date扩展为返回如下字符串:

extension Date {
    func timeAgoDisplay() -> String {
        print("Date RIGHT NOW: \(self)")
        let secondsAgo = Int(Date().timeIntervalSince(self))

        if secondsAgo >= 86400 * 2 {
            return "\(((secondsAgo / 60) / 60) / 24) days ago"
        } else if secondsAgo >= 86400 {
            return "\(((secondsAgo / 60) / 60) / 24) day ago"
        } else if secondsAgo > 7200 {
            return "\((secondsAgo / 60) / 60) hours ago"
        } else if secondsAgo >= 3600 {
            return "\((secondsAgo / 60) / 60) Hour ago"
        } else if secondsAgo < 60 {
            return "\(secondsAgo) seconds ago"
        } else if secondsAgo > 119 {
            return "\(secondsAgo / 60) minutes ago"
        }

        return "\(secondsAgo / 60) minute ago"
    }
}

我在数据库中为用户发布的每个帖子都有一个timeInterval,但我想知道如何使这个扩展工作到帖子的TimeInterval。

1 个答案:

答案 0 :(得分:0)

看起来你几乎就在那里!您已经在计算TimeInterval并且只需要改为扩展类型:

extension TimeInterval {
    func timeAgoDisplay() -> String {
        let secondsAgo = Int(self)

        if secondsAgo >= 86400 * 2 {
            return "\(((secondsAgo / 60) / 60) / 24) days ago"
        } else if secondsAgo >= 86400 {
            return "\(((secondsAgo / 60) / 60) / 24) day ago"
        } else if secondsAgo > 7200 {
            return "\((secondsAgo / 60) / 60) hours ago"
        } else if secondsAgo >= 3600 {
            return "\((secondsAgo / 60) / 60) Hour ago"
        } else if secondsAgo < 60 {
            return "\(secondsAgo) seconds ago"
        } else if secondsAgo > 119 {
            return "\(secondsAgo / 60) minutes ago"
        }

        return "\(secondsAgo / 60) minute ago"
    }
}