将数据推送到数组中,但在将时间戳转换为日期之后
Posted
技术标签:
【中文标题】将数据推送到数组中,但在将时间戳转换为日期之后【英文标题】:Push data in array but after converting timestamp to date 【发布时间】:2020-07-10 11:26:03 【问题描述】:从 Firestore 获取数据并将其推送到数组中。这工作正常,但在此过程中,我正在更改时间戳格式,我希望在我的数组中而不是原始数组中的 timestamp
值。如何从原始值替换此值并推送?
到目前为止我的代码:
home.ts
firebase.firestore().collection("dailyreport").where("timestamp", ">=", start)
.onSnapshot(querySnapshot =>
var cities = [];
querySnapshot.forEach( doc=>
const timeinmillsecs = doc.data().timestamp.seconds * 1000;
let a1 = new Date(timeinmillsecs);
let show_year_month_date = a1.getFullYear()+'/'+(a1.getMonth()+1) +'/'+a1.getDate(); // 3.convert to imple date
console.log(show_year_month_date); // ***NEED THIS VALUE IN dailyreports ARRAY
this.dailyreports.push(doc.data());
console.log("Timestamp greather than 29march -- ", (doc.data()));
);
);
console.log(doc.data())
的截图
编辑 1
在推送之前,我已经分配了这样的值-
doc.data().timestamp = show_year_month_date;
this.dailyreports.push(doc.data());
但它也不起作用。
编辑 2
dailyreports
和doc
的截图:
【问题讨论】:
您要更改this.dailyreports
数组还是data.doc()
?
this.dailyreports 应该有一个新字段或当前时间戳字段应该更改为所需的格式
【参考方案1】:
不要尝试更新doc.data()
,而是将值复制到一个新变量,比如data
。更新data
中的时间戳,然后将数据推送到this.dailyreports
。然后控制台记录data
以查看推送到this.dailyreports
的具有更新时间戳的对象。
firebase.firestore().collection("dailyreport").where("timestamp", ">=", start)
.onSnapshot(querySnapshot =>
var cities = [];
querySnapshot.forEach(doc =>
const data = doc.data();
const timeinmillsecs = data.timestamp.seconds * 1000;
let a1 = new Date(timeinmillsecs);
let show_year_month_date = a1.getFullYear() + '/' + (a1.getMonth() + 1) + '/' + a1.getDate(); // 3.convert to imple date
data.timestamp = show_year_month_date;
console.log(show_year_month_date); // ***NEED THIS VALUE IN dailyreports ARRAY
this.dailyreports.push(data);
console.log("Timestamp greather than 29march -- ", data);
);
);
【讨论】:
doc.data().timestamp = show_year_month_date;
,即使我 console.log 这个,它也不会改变,我可以在这个数组中添加一个新字段并在home.html
一侧检索它吗?
你能 console.log doc
分享一下节目内容吗?
我已经这样做了,请参阅有问题的Edit 2
,我已经更新了问题并添加了屏幕截图
data.timestamp = show_year_month_date;
错误 - 找不到名称数据
我们不能将show_year_month_date;
的值添加到一个新变量中吗?比如说timestamp2
并将其推送到数组中?以上是关于将数据推送到数组中,但在将时间戳转换为日期之后的主要内容,如果未能解决你的问题,请参考以下文章
使用 sql 将字符串纪元代码从 unix 时间戳转换为日期