【发布时间】:2020-12-07 11:10:37
【问题描述】:
所以我正在调用我的 firestore 数据库并尝试从时间戳返回日期部分,但它返回的年份错误。
<text>{new Date(data.value * 1000).toLocaleDateString('en-GB')}</text>
我知道 1000 是秒,但没有它会返回无效日期。
getjobs = async () => {
try {
const unsubscribe = await firebase.firestore().collection("jobs")
.onSnapshot((querySnapshot) => {
var _jobs = [];
querySnapshot.forEach( (doc)=> {
const job = doc.data();
if(job.company === this.state.user.company){
_jobs.push({ ...job, id: doc.id });
}
});
console.log('---------state',this.state);
this.setState({
jobs: _jobs,
})
});
this.setState({
unsubscribe
})
} catch (e) {
console.log('error cant get jobs', e);
}
}
列表项
Item = (data, index) => {
return (
<ListItem thumbnail key={index} style={styles.listItem}>
<Body>
<Text>Job Number: {data.jobnumber}</Text>
<Text note numberOfLines={1}>Trade: {data.trade}</Text>
<Text note numberOfLines={1}>PostCode: {data.postcode}</Text>
<Text note numberOfLines={1}>Date: {new Date(data.value * 1000).toLocaleDateString('en-GB')}</Text>
</Body>
<Right>
<FontAwesome5 name="chevron-right" size={22} color="#f53025" />
</Right>
</ListItem>
);
}
【问题讨论】:
-
您希望检索的实际年份是什么,没有 1000 会得到什么?
-
我希望收到的日期是用户输入的firestore数据库中的任何日期。没有 1000 我会得到无效的日期。请参阅编辑。
-
我用 1000 和没有 1000 都试过,两种情况都返回 invalid date。但是,当我从 date.value 中删除 'at' 时,它工作得非常好。我可以知道你是如何设置那个日期的吗?
-
请编辑您的问题以显示minimal, complete/standalone code that reproduces the problem。目前,我们不知道
data是如何获得它的价值的。 -
请看编辑
标签: javascript react-native google-cloud-firestore