【发布时间】:2017-01-13 16:20:23
【问题描述】:
我正在尝试确定如何确定给定的时间戳是今天还是 +1 / -1 天。本质上,我想做这样的事情(伪代码)
IF days_from_today(timestamp) == -1 RETURN 'Yesterday'
ELSE IF days_from_today(timestamp) == 0 RETURN 'Today'
ELSE IF days_from_today(timestamp) == 1 RETURN 'Tomorrow'
ELSE IF days_from_today(timestamp) < 1 RETURN days_from_today(timestamp) + ' days ago'
ELSE RETURN 'In ' + days_from_today(timestamp) + ' ago'
但至关重要的是,它需要在 Swift 中,而我正在努力处理 NSDate / NSCalendar 对象。我开始像这样计算时差:
let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
fromDate: date, toDate: NSDate(), options: NSCalendarOptions())
但是,以这种方式进行比较并不容易,因为 .Day 根据一天中的时间和时间戳而有所不同。在 PHP 中,我只是使用 mktime 根据一天的开始(即mktime(0,0,0))创建一个新日期,但我不确定在 Swift 中最简单的方法。
有人知道如何解决这个问题吗?也许最好扩展 NSDate 或类似的东西?
【问题讨论】:
标签: ios swift nsdate nscalendar