Estoy tratando de convertir la marca de tiempo de Firebase a la fecha local sin éxito. Recibo Invalid Date con el siguiente código. ¿Qué estoy haciendo mal con toLocaleString o hay otros métodos?
<Table.Header> <Table.Column>Email</Table.Column> <Table.Column>Last login</Table.Column> <Table.Column>Created</Table.Column> </Table.Header> <Table.Body> {usersList.map((user, index) => ( <Table.Row key={index}> <Table.Cell>{user.user.email}</Table.Cell> <Table.Cell>{new Date(user.user.lastLoginAt).toLocaleString("da-DK", {year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit",})}</Table.Cell> <Table.Cell>{new Date(user.user.createdAt).toLocaleString("da-DK", {year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit",})}</Table.Cell> </Table.Row> ))} </Table.Body>El problema ocurre porque los valores lastLoginAt y createdAt vienen como cadenas de sus datos API. Debe convertirlos en un número para que puedan usarse dentro de la new Date() .
new Date(Number(user.user.lastLoginAt)) new Date(Number(user.user.createdAt)) El constructor de Date espera que el valor de la marca de tiempo sea un número.
Valor de tiempo o número de marca de tiempo
valueUn valor entero que representa el número de milisegundos desde el 1 de enero de 1970, 00:00:00 UTC (la época de ECMAScript, equivalente a la época de UNIX), ignorando los segundos bisiestos. Tenga en cuenta que la mayoría de las funciones de marca de tiempo de UNIX solo son precisas al segundo más cercano.