Estoy tratando de analizar una marca de tiempo para usarla en un gráfico en d3.js
, pero no logro que funcione. A continuación se muestran ejemplos de la marca de tiempo:
- 2022-02-17 09:52:37.000000 - 2022-02-17 09:54:00.000000
El código que uso para hacer el análisis es:
`const dateParser = d3.timeFormat("%Y-%m-%d"); data.forEach(function(d) { d.timestamp = dateParser(d.ts); });`
Donde d.ts
es la marca de tiempo
La salida que obtengo en este momento está bajo la forma:
0NaN-NaN-NaN
Gracias por adelantado
En cierto modo, el análisis es lo opuesto al formato : cuando analiza, convierte una cadena en una fecha, mientras que el formato convierte la fecha en una cadena legible (también, preste atención a su especificador, es incorrecto).
Por lo tanto, desea d3.timeParse()
en su lugar. Aquí está el fragmento de código de trabajo, mire la consola de su navegador, no la del fragmento de código:
const dates = ["2022-02-17 09:52:37", "2022-02-17 09:54:00" ]; const dateParser = d3.timeParse("%Y-%m-%d %H:%M:%S"); dates.forEach(function(d) { console.log(dateParser(d)); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
¿Son cadenas de fechas? Si es así, podría cambiar su código para convertir primero la fecha de la cadena en el objeto Fecha y luego llamar a dateParser en él:
data.forEach(function(d) { d.timestamp = dateParser(new Date(d.ts)); });