使用 Swift 呈现 Unix 时间戳

presenting Unix Timestamps with Swift

使用当前时间戳和给定时间戳,在页面上显示它们的最佳方式是什么?如果给定的时间戳代表 "yesterday",演示文稿应该说昨天。如果给定的时间戳是几分钟或几小时前,它应该只包括多少。等等,最好从另一个中减去一个并评估差异意味着什么,或者是否有可以使用的内置库或框架?到目前为止,我正在使用以下游乐场:

    let ts = 1499299978.149724
    let current_ts: Double

    let date = NSDate(timeIntervalSince1970: ts)

    let dayTimePeriodFormatter = DateFormatter()

    let totalFormat  = "MMM dd YYYY hh:mm a" //just for reference
    dayTimePeriodFormatter.dateFormat = "hh:mm a" //add to this as desired

    let dateString = dayTimePeriodFormatter.string(from: date as Date)

这应该让你开始:

    let midnight = startOfToday.timeIntervalSince1970
    let secondsInADay = 86400.0

    if ts > midnight {
        print ("today")
        code
    } else if ts > midnight - secondsInADay {
        print ("yesterday")
        code
    } else if ts > midnight - secondsInADay - secondsInADay {
        print ("2 days ago")
        code
    } else if ts > midnight - secondsInADay * 3 {
        print ("3 days ago")
        code
    }

在 "today" 块内,您可以使用类似的过程来检查秒前、分钟前,否则从当前 ts 中减去 ts,然后相应地除以 60 得到您需要的数字