【发布时间】:2020-04-23 14:49:27
【问题描述】:
我正在从collection 获取数据。我以timestamp Firestore 标准格式保存了日期。我就是这样保存record['entryDate'] = firebase.firestore.FieldValue.serverTimestamp();
现在,当我获取它时,我希望它在数组中的新变量中采用可读格式。这是我目前用来获取数据的代码:
home.ts
ngOnInit {
//start fetch
this.crudService.read_Projects().subscribe(data => {
this.projectList = data.map(e => {
return {
id: e.payload.doc.id,
isEdit: false,
name: e.payload.doc.data()['name'],
desc: e.payload.doc.data()['desc'],
followers: e.payload.doc.data()['followers'],
milestone: e.payload.doc.data()['milestone'],
entryDate: e.payload.doc.data()['entryDate'],
// for each readable_entryDate = how do i convert ?
};
})
console.log(this.projectList);
});//end fetch
}
crud.service.ts
read_Projects() {
return this.firestore.collection('projects').snapshotChanges();
}
我可以使用get() 执行此操作,但无法在上述代码中执行此操作,以防您希望查看我的get() 代码以获取并将日期转换为可读格式:
const ref = firebase.firestore().collection('cities').where('name', '==', 'JALANDHAR')
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
const timeinmillsecs = doc.data().timestamp.seconds * 1000; //1. get timestamp and make it in milli
console.log(new Date(timeinmillsecs)); // 2. convert to time lambi string
let a1 = new Date(timeinmillsecs); // 3. convert to simple date
let show_year_month_date = a1.getFullYear()+'/'+(a1.getMonth()+1) +'/'+a1.getDate(); // 3.convert to imple date
console.log(show_year_month_date); // 4. needed result // will show this on form
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
编辑 1
使用ToDate()后,将我的代码改为
entryDate: e.payload.doc.data()['entryDate'].toDate(),
我得到了完整的 JS 日期对象,但我只需要日期,也许在我的数组中的 entryDate2 字段中,我该如何实现?
以下是现在的日期:
【问题讨论】:
标签: javascript firebase google-cloud-firestore