¿Cómo puedo convertir la fecha normal 2012.08.10
a la marca de tiempo de Unix en javascript?
Fiddle: http://jsfiddle.net/J2pWj/
He visto muchas publicaciones aquí que lo convierten en PHP, Ruby, etc ... Pero necesito hacer esto dentro de JS.
unix timestamp
es fundamental para toda la ingeniería y la informática. Ojalá hubiera un método de conveniencia incorporado. Actualmente estoy usandoMath.floor((+new Date()) / 1000);
Respuestas:
Consulte la documentación de JavaScript Date .
fuente
Es importante agregar
toFixed(0)
para eliminar los decimales al dividir por 1000 para convertir de milisegundos a segundos.La
.getTime()
función devuelve la marca de tiempo en milisegundos, pero las marcas de tiempo verdaderas de Unix siempre están en segundos.fuente
Debería consultar la api de moment.js, es muy fácil de usar y tiene muchas funciones integradas.
Creo que para tu problema, podrías usar algo como esto:
fuente
fuente
Simplemente podría usar el operador unario +
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ : busque en Fechas.
fuente
/
que ya es un operador matemático. Además,toFixed
devuelve una cadena y no un número, en caso de que el tipo sea importante ..Puede usar Date.parse () , pero los formatos de entrada que acepta dependen de la implementación. Sin embargo, si puede convertir la fecha al formato ISO (AAAA-MM-DD) , la mayoría de las implementaciones deberían comprenderlo.
Consulte ¿Por qué Date.parse da resultados incorrectos? .
fuente
En este caso, es importante devolver solo un número entero (por lo que una división simple no funcionará) y también devolver solo los segundos realmente transcurridos (por eso este código se usa
Math.floor()
y noMath.round()
).fuente
Puede hacerlo usando el método Date.parse ().
Salida de fecha.parse ("03.03.2016" )-> 1456959600000
Salida de Date.parse ("2015-12-12" )-> 1449878400000
fuente
fuente
Después de comparar la marca de tiempo con la de PHP, nada de lo anterior parece correcto para mi zona horaria. El siguiente código me dio el mismo resultado que PHP, que es el más importante para el proyecto que estoy haciendo.
Estoy usando esto en NodeJS, y tenemos la zona horaria 'Australia / Sydney'. Entonces, tuve que agregar esto en el archivo .env:
Arriba es equivalente a:
fuente
convertir la marca de tiempo a la marca de tiempo de Unix.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
para obtener la marca de tiempo después de la conversión
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
fuente