如何获取两个时间之间的时差
How to get time difference between two times
我正在处理 iOS swift 应用程序。我是 运行 计时器 6 分钟。在那 6 分钟内,用户可以完成一些任务,我也显示了取消选项。定时器启动后,用户也可以取消该任务。
在 UI 中,我在 06:00、05:59 等标签中显示计时器递减,直到 00:00
所以,我必须计算用户在该任务上花费了多少时间。
因此,总时长 6 分钟减去用户工作时间(比如 10 秒,1 分钟这样)
let difference = testDuration(testTime: "00:10") //assume 10 seconds user taken test
func testDuration(testTime: String) -> String {
let totalTestDuration = "06:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "mm:ss"
let totalTestTime = dateFormatter.date(from: totalTestDuration)!
let userWalkedTime = dateFormatter.date(from: testTime)!
let calendar = Calendar.current
let totalComponents = calendar.dateComponents([.minute, .second], from: totalTestTime)
let userWalkedComponents = calendar.dateComponents([.minute, .second], from: userWalkedTime)
let difference = calendar.dateComponents([.minute], from: totalComponents, to: userWalkedComponents).minute!
print("difference", difference)
return String(difference)
}
But, Always it is getting as 0
有什么建议吗?
要解决这个问题,您需要熟悉 TimeIntervals。
可能最简单的方法是获取 timeIntervalSince1970
,它表示自 01.01.1970 00:00..[= 以来的秒数14=]
之后你可以简单地划分 newDate.timeIntervalSince1970
- oldDate.timeIntervalSince1970
这为您提供了这两个日期之间的秒数。然后您可以将结果转换为小时、天等。
let oldDate: Date = Your Old Date
let newDate: Date = Your New Date
let difference = newDate.timeIntervalSince1970 - oldDate.timeIntervalSince1970
我正在处理 iOS swift 应用程序。我是 运行 计时器 6 分钟。在那 6 分钟内,用户可以完成一些任务,我也显示了取消选项。定时器启动后,用户也可以取消该任务。
在 UI 中,我在 06:00、05:59 等标签中显示计时器递减,直到 00:00
所以,我必须计算用户在该任务上花费了多少时间。
因此,总时长 6 分钟减去用户工作时间(比如 10 秒,1 分钟这样)
let difference = testDuration(testTime: "00:10") //assume 10 seconds user taken test
func testDuration(testTime: String) -> String {
let totalTestDuration = "06:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "mm:ss"
let totalTestTime = dateFormatter.date(from: totalTestDuration)!
let userWalkedTime = dateFormatter.date(from: testTime)!
let calendar = Calendar.current
let totalComponents = calendar.dateComponents([.minute, .second], from: totalTestTime)
let userWalkedComponents = calendar.dateComponents([.minute, .second], from: userWalkedTime)
let difference = calendar.dateComponents([.minute], from: totalComponents, to: userWalkedComponents).minute!
print("difference", difference)
return String(difference)
}
But, Always it is getting as 0
有什么建议吗?
要解决这个问题,您需要熟悉 TimeIntervals。
可能最简单的方法是获取 timeIntervalSince1970
,它表示自 01.01.1970 00:00..[= 以来的秒数14=]
之后你可以简单地划分 newDate.timeIntervalSince1970
- oldDate.timeIntervalSince1970
这为您提供了这两个日期之间的秒数。然后您可以将结果转换为小时、天等。
let oldDate: Date = Your Old Date
let newDate: Date = Your New Date
let difference = newDate.timeIntervalSince1970 - oldDate.timeIntervalSince1970