#javascript #reactjs
Вопрос:
Я получаю документ из firestore, и я уже мог бы показать его в консоли. Вот что показывают данные:
displayName: "Person1"
items:
itemAcquired: t {seconds: 1631084326, nanoseconds: 617000000}
itemName: "Book1"
[[Prototype]]: Object
Я попытался отобразить itemAcquired
его на экране, но на нем отображалась «Недопустимая дата».:
<ListItem>
<Typography>Item Acquired At : </Typography>
<ListItemText
primary={new Date(user.items?.itemAcquired).toLocaleDateString()}
/>
</ListItem>
Комментарии:
1.
primary={new Date(user.items?.itemAcquired.t.seconds*1e3).toLocaleDateString()}
2. @YevgenGorbunkov там написано «Ошибка типа: Не удается прочитать свойства неопределенного (чтение»секунды»)»
3. Я подозреваю, что некоторые из ваших объектов не будут иметь
itemAcquired
или иметь последующееt
свойство, поэтому используйте необязательную цепочку?.
на всем протяжении.4. Кроме того, рассмотрите возможность размещения правильно обозначенного объекта для большей ясности.
Ответ №1:
JavaScript Date не знает об объекте метки времени firestore, вы можете использовать функцию ToDate() вместе с функцией toDateString()
const date = itemAcquired.toDate().toDateString()
Также вы можете попробовать
new Date(temAcquired.seconds * 1000).toUTCString()