【发布时间】:2017-03-26 00:59:02
【问题描述】:
我想使用具有产品值的 Firebase 数据库,即寿命(整数而不是日期),并使用它来比较用户添加项目的日期,即 25/03/17,我不确定如何实现这一目标。有人可以给我一些建议。我相信这与近似值有关,所以如果 Liespan 等于 7,那么用户应该看到 7 天,并且每天都会减少,所以基本上是一个 倒计时。我查看了 NSDate 文档和 SwiftDate 框架,并且对我可能需要使用的方法有所了解。
我有一个示例,它获取订婚日期并将其与结婚日期进行比较,我认为这与我想要尝试和实现的目标有些相似。然而,由于这使用了两个日期,我想使用一个日期和一个整数:
formatter.dateFormat = "dd/MM/yyyy"
let dateArray = message["message"] as! NSMutableArray
if let startTimeString = dateArray[0] as? String {
let weddingDate = formatter.dateFromString(startTimeString)
var engagementDate:NSDate? = nil
if let endTimeString = dateArray[1] as? String {
engagementDate = formatter.dateFromString(endTimeString)
}
let now = NSDate()
let totalEngagementTime = userCalender.components(.Day, fromDate: engagementDate!, toDate: weddingDate!, options: []).day
let daysFromEngagementUntilNow = userCalender.components(.Day, fromDate: engagementDate!, toDate: now, options: []).day
let percentage = (Double(daysFromEngagementUntilNow) / Double(totalEngagementTime)) * 100.00
let timeUntilWedding = userCalender.components(requestedComponent, fromDate: now, toDate: weddingDate!, options: [])
希望我有道理,提前谢谢你! :)
【问题讨论】:
-
只是为了确定,在您的数据库中,您有一个生命周期值(整数)和添加项目的日期(日期),对吗?如果是,您需要做的就是获取当前日期并找出日期之间的差异,以查看自添加项目以来已经过去了多少天。一旦达到寿命值,您可能会停止倒计时。我可以为你提供代码,如果这会让它更容易,但这应该会有所帮助 - stackoverflow.com/questions/31132159/…
-
你想让它每天倒计时吗?
-
@Fahim,是的,你是对的,倒计时将在它达到其使用寿命后立即停止。我知道这可以应用于任何数据库,但你能向我展示使用 Firebase 的方法吗?所以目前我可以将购买商品的日期发送到数据库。但是我刚刚意识到用户正在提供这些数据,所以它不起作用。我一直试图让它只让用户选择表中的数据。如果这有任何意义。
-
@Chace 恐怕最后一点对我来说根本没有任何意义 :) 但你可能有一个与我完全不同的实现。从我坐的地方,如果数据在表中,您应该能够获取它,如果您可以获取数据,您可以进行计算并显示结果。但由于我不知道你的想法,我可能完全错了:)
-
@Fahim 基本上现在我可以创建一个事件并给它一个日期值。但我意识到这是错误的方法。我应该做的就像你提到的那样,即获取数据并根据用户设置的日期进行计算。我对 Firebase 很陌生,所以目前我只能获取用户添加的数据的快照并将其显示到 tableView 上。但是现在我需要显示具有生命周期的数据表。
标签: firebase swift3 nsdate countdown