【问题标题】:How to return the date part form a timestamp in firestore react native如何在firestore react native中以时间戳形式返回日期部分
【发布时间】: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


【解决方案1】:

我没有意识到我收藏中的一个文档没有日期字段,这就是它给我一个错误的原因。

{data.value.toDate().toLocaleDateString('en-GB')}

【讨论】:

    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2019-06-21
    • 2021-10-16
    • 2017-12-26
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多