Estoy tratando de convertir la fecha a continuación en un objeto Date() de javascript. Cuando lo recupero del servidor, es un objeto de marca de tiempo,
Captura de pantalla de la consola Firebase Firestore:
Cuando intento lo siguiente en una lista de objetos devueltos por firestore:
list.forEach(a => { var d = a.record.dateCreated; console.log(d, new Date(d), Date(d)) })
Claramente, las marcas de tiempo son todas diferentes y no todas tienen la misma fecha del 9 de septiembre de 2018 (que resulta ser hoy). Tampoco estoy seguro de por qué la new Date(Timestamp)
da como resultado una invalid date
. Soy un poco novato en JS, ¿estoy haciendo algo mal con las fechas o las marcas de tiempo?
Puede usar la función toDate() junto con toDateString() para mostrar solo la parte de la fecha.
const date = dateCreated.toDate().toDateString() //Example: Friday Nov 27 2017
Supongamos que solo desea la parte de tiempo y luego use toLocaleTimeString()
const time = dateCreated.toDate().toLocaleTimeString('en-US') //Example: 01:10:18 AM, the locale part 'en-US' is optional
Puede usar Timestamp.fromDate
y .toDate
para convertir de un lado a otro.
// Date to Timestamp const t = firebase.firestore.Timestamp.fromDate(new Date()); // Timestamp to Date const d = t.toDate();