天/小时/分钟/秒的快速倒数计时器标签

我正在创建倒数计时器,倒计时到UIDatePicker设置的NSDate 。 我有一个标签,显示我们倒计时的日期,并且工作正常。

我还要添加的是剩余的整天数和当天剩余的小时/分钟/秒数(即从未超过23/59/59)的标签。这是我在那一刻所做的但它显然显示了整个倒计时的价值。 希望有人可以帮助我在这里找出正确的逻辑。

 let secondsLeft = sender.date.timeIntervalSinceDate(NSDate()) hoursLabel.text = String(secondsLeft % 3600) minutesLabel.text = String((secondsLeft / 60) % 60) secondsLabel.text = String(secondsLeft % 60) 

我想我正在寻找的是一些快速相当于你在php中获得的datetime

看一下NSCalendar课程。 具体来看方法components:fromDate:toDate:options:这使您可以使用指定的任何单位获取2个日期并计算它们之间的差异。

它也是可本地化的,因此如果您使用当前日历并且用户使用中文,希伯来文或阿拉伯语日历,则计算将为您提供正确的日历结果。

得到它 – 对于Swift 2

 let calendar = NSCalendar.currentCalendar() let components = calendar.components([.Day, .Hour, .Minute, .Second], fromDate: NSDate(), toDate: sender.date, options: []) daysLabel.text = String(components.day) hoursLabel.text = String(components.hour) minutesLabel.text = String(components.minute) secondsLabel.text = String(components.second)