在通知中,您看到的活动显示为“ 5分钟前发布”,
这就是我要在这里实现的目标。以下功能正常运行。

func daysBetweenDate(startDate: NSDate, endDate: NSDate) -> Int
{
    let calendar = NSCalendar.currentCalendar()

    let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: [])
//    print(components.second)
    return components.day
}

daysBetweenDate(postedDate, endDate: NSDate())

func hoursBetweenDate(startDate: NSDate, endDate: NSDate) -> Int
{
    let calendar = NSCalendar.currentCalendar()

    let components = calendar.components([.Hour], fromDate: startDate, toDate: endDate, options: [])
    //    print(components.second)
    return components.hour
}

hoursBetweenDate(postedDate, endDate: NSDate())


我如何识别postdDate是否已经是秒,分钟,小时或天。并返回必要的东西吗?

如果两个NSD日期之间的持续时间超过一分钟,我想输出“ 34分钟前”,而当它超过一个小时时,则输出“ 2小时前”,依此类推。我如何有条件地做到这一点。

最佳答案

给两个日期,您可以使用NSDateComponentsFormatter很好地做到这一点:

let form = NSDateComponentsFormatter()
form.maximumUnitCount = 1
form.unitsStyle = .SpellOut // or .Full, whatever you prefer
let s = form.stringFromTimeInterval(
    d1.timeIntervalSinceReferenceDate - d2.timeIntervalSinceReferenceDate)

关于ios - 计算NSDate swift 2之间的持续时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33349466/

10-12 01:26