【发布时间】:2015-10-26 15:26:20
【问题描述】:
在通知中,您会看到显示“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())
我如何识别postedDate 是否已经是秒、分钟、小时或天。并返回任何必要的?
如果两个 NSDate 之间的持续时间超过一分钟,我想输出“34 分钟前”,当它超过一个小时时,“2 小时前”等等。我怎么能有条件地做到这一点。
【问题讨论】:
-
发帖前有没有试过搜索?您可能找不到
swift的答案,但您一定会找到objective-c的答案。 -
您似乎已经解决了问题。我现在不明白问题是什么。
-
@matt 如果两个 NSDate 之间的持续时间超过一分钟,我想输出“34 分钟前”,当它超过一个小时时,“2 小时前”等等。我怎样才能有条件地做到这一点。
-
好吧,考虑一下。如果有天数,则只打印天数。如果没有,那么如果有小时,只打印小时。如果没有,那么如果有分钟,只打印分钟。否则只打印秒数。
-
顺便说一句,您可以从 NSDateComponentsFormatter.h 获得很大的帮助。