swift - 如何将数据作为时间戳数据类型发布到 Firestore - swift
问题描述
我想知道如何将数据发布String
为Firestore
as Timestamp
。我正在创建一个示例应用程序,它存储数据tableView
并且数据将基于Timestamp
.
因此,在编程中,我试图获取当前时间和日期,String
但我不知道如何将数据设置为Firestore
as field is Timestamp
。当我查询数据时,Firestore
我想对数据进行排序Timestamp
。
let currentDateTime = Date()
// initialize the date formatter and set the style
let formatter = DateFormatter()
formatter.timeStyle = .long
formatter.dateStyle = .long
// get the date time String from the date object
formatter.string(from: currentDateTime)
Timestamp
Firestore
包含日期和时间。我怎样才能String
发布Firestore
数据Timestamp
?
解决方案
为什么要将其发布为String
?这是我的Int
替代方法
let timestamp = Int(Date().timeIntervalSince1970) // gives you an Int like 1534840591
然后,当您从 解析它时Firebase
,将其传递给func
类似这样的东西,以将该Int
时间戳转换为日期:
func timestampIntToString(integerTime: Int, timestampLabel: UILabel) {
let timestampDate = Date(timeIntervalSince1970: Double(integerTime))
let now = Date()
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let difference = Calendar.current.dateComponents(components, from: timestampDate, to: now)
var timeText = ""
if difference.second! <= 0 {
timeText = "now"
}
if difference.second! > 0 && difference.minute! == 0 {
timeText = "\(difference.second!) sec ago"
}
if difference.minute! > 0 && difference.hour! == 0 {
timeText = "\(difference.minute!) min"
}
if difference.hour! > 0 && difference.day! == 0 {
timeText = "\(difference.hour!)h"
}
if difference.day! > 0 && difference.weekOfMonth! == 0 {
timeText = (difference.day == 1) ? "\(difference.day!)day" : "\(difference.day!) days ago"
}
if difference.weekOfMonth! > 0 {
timeText = (difference.weekOfMonth == 1) ? "\(difference.weekOfMonth!) w" : "\(difference.weekOfMonth!)w"
}
timestampLabel.text = timeText
}
推荐阅读
- swift - 是否可以在 Swift 的 if 条件中使用字符串变量?
- arrays - 减少值相等的数组
- python - 如何使用 for 循环一一“填充”子图?
- c# - sql to Linq union 是通过引用吗?(除了和相交一样吗?)
- mysql - 关于 UUID 数据类型作为主键
- laravel - 使用 Gitlab Runner 设置 Laravel 环境
- javascript - 在 adobe analytics 中将动态值推送到 digitalData 层
- angular - 从 api 调用动态创建角度反应形式的复选框
- android - 应用数据的改变路径
- android - 子 webview 从父 webview 启动一次后出现键盘问题