timestamp变量存储在firestore中,当提取时,它是秒和纳秒的格式,如何将timestamp转换为类似2018-09- 19 T00:00:00的格式
let Ref=firebase.firestore().collection("Recruiter").doc(u.uid).collection("Jobs")
Ref.orderBy("timestamp", "desc").onSnapshot(function(snapshot){
$.each(snapshot.docChanges(), function(){
var change= this
if(change.type==="added"){
var ab= new Date(change.doc.data().timestamp)
console.log(ab)
thisIns.RecruiterChart.chartOptions.xaxis.categories.push(
ab
)
console.log( thisIns.RecruiterChart.chartOptions.xaxis.categories)
}
})
})
变量ab在控制台上显示“无效日期”
3条答案
按热度按时间83qze16e1#
您应该使用Firestore
Timestamp
的toDate()
方法:将Timestamp转换为JavaScript Date对象。由于Date对象仅支持毫秒精度,因此此转换会导致精度损失。
返回
Date
JavaScript Date对象,表示与此Timestamp相同的时间点,精度为毫秒。
因此,您可以执行以下操作:
然后,您需要根据需要格式化此日期。最简单的方法是使用专用库,如
moment.js
,如下所示:使用
moment.js
化日期的其他可能性可以在这里找到。qvtsj1bj2#
我想我知道发生了什么。
你的
ab
变量应该是字符串格式的,对吗?尝试先将其解析为Number ..然后看看会发生什么。
尝试记录如下内容:
或
干杯
xj3cbfub3#
var ab = change.doc.data().timestamp.toDate().toLocaleDateString('en-US')
// 7/2/2021或更多:
var ab = change.doc.data().timestamp.toDate().toLocaleDateString('en-US', { weekday:"long", year:"numeric", month:"short", day:"numeric"})
//2021年7月2日星期五阅读更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString