Estoy almacenando tiempo en una base de datos MySQL como una marca de tiempo de Unix y eso se envía a algún código JavaScript. ¿Cómo obtendría el tiempo justo?
Por ejemplo, en formato HH / MM / SS.
javascript
date
time
date-format
time-format
roflwaffle
fuente
fuente
Respuestas:
Para obtener más información sobre el objeto Fecha, consulte MDN o la especificación ECMAScript 5 .
fuente
fuente
var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
getMonth()
devuelve un número de mes entre 0 y 11, por lo tanto,a.getMonth() - 1
está mal.JavaScript funciona en milisegundos, por lo que primero tendrá que convertir la marca de tiempo UNIX de segundos a milisegundos.
fuente
Soy parcial a la
Date.format()
biblioteca de Jacob Wright , que implementa el formato de fecha JavaScript en el estilo de ladate()
función de PHP .fuente
format is not a function
. Pero esto aparentemente funciona: stackoverflow.com/a/34015511/7550772Utilizar:
y por tiempo:
ver Date.prototype.toLocaleDateString ()
fuente
toLocaleString
incluye tanto la fecha como la hora.Aquí está la solución más simple de una línea para formatear segundos como
hh:mm:ss
:NB: esta solución no requiere ninguna biblioteca de terceros y es compatible con todos los navegadores modernos y motores de JavaScript.
fuente
toTimeString
no funcionaba bien con las zonas horarias. Lamentablemente, su edición fue rechazada antes de que la viera. Sin embargo, sugeriría usartoISOString
en su lugar, ya quetoGMTString
está en desuso y puede devolver resultados diferentes en diferentes plataformas.Pensaría en usar una biblioteca como momentjs.com , eso lo hace realmente simple:
Basado en una marca de tiempo Unix:
Basado en una cadena de fecha MySQL:
fuente
console.log
ejemplos, estaba confundido sobre el formato debido al/
, pero me ayudó mucho.La marca de tiempo UNIX es el número de segundos desde las 00:00:00 UTC del 1 de enero de 1970 (según Wikipedia ).
El objeto Argumento de fecha en Javascript es el número de milisegundos desde las 00:00:00 UTC del 1 de enero de 1970 (según la documentación de Javascript de W3Schools ).
Vea el código a continuación, por ejemplo:
da:
fuente
La solución de una línea más corta para formatear segundos como hh: mm: ss: variante:
fuente
Usando Moment.js , puede obtener la hora y la fecha de esta manera:
Y solo puede obtener tiempo usando esto:
fuente
El problema con las soluciones antes mencionadas es que si la hora, minuto o segundo tiene solo un dígito (es decir, 0-9), la hora sería incorrecta, por ejemplo, podría ser 2: 3: 9, pero debería ser 02: 03:09.
Según esta página , parece ser una mejor solución para utilizar el método "toLocaleTimeString" de Date.
fuente
date.toLocaleTimeString()
toTimeString
método. Consulte aquí: stackoverflow.com/a/35890537/1249581 .Otra forma: desde una fecha ISO 8601 .
fuente
En este momento debe usar la marca de tiempo de Unix:
fuente
Basado en la respuesta de @ shomrat, aquí hay un fragmento que escribe automáticamente datetime de esta manera (un poco similar a la fecha de StackOverflow para las respuestas:)
answered Nov 6 '16 at 11:51
:o
o (si es diferente pero el mismo año que hoy)
o (si es otro año que hoy)
fuente
La solución moderna que no necesita una biblioteca de 40 KB:
Intl.DateTimeFormat es la forma no culturalmente imperialista de formatear una fecha / hora.
fuente
Mi marca de tiempo se obtiene de un backend de PHP. Intenté todos los métodos anteriores y no funcionó. Luego me encontré con un tutorial que funcionó:
los métodos anteriores generarán estos resultados
Hay muchos métodos que funcionan perfectamente con marcas de tiempo. No puedo enumerarlos a todos
fuente
fuente
Presta atención al problema cero con algunas de las respuestas. Por ejemplo, la marca de tiempo
1439329773
se convertiría por error a12/08/2015 0:49
.Sugeriría usar lo siguiente para superar este problema:
Ahora da como resultado:
fuente
fuente
fuente
Ver Fecha / Epoch Converter .
Necesitas hacerlo
ParseInt
, de lo contrario no funcionaría:fuente
Puede usar la siguiente función para convertir su marca de tiempo a
HH:MM:SS
formato:Sin pasar un separador, se usa
:
como separador (predeterminado):Si desea usarlo
/
como separador, simplemente páselo como el segundo parámetro:Manifestación
Ver también este violín .
fuente
fuente
Si desea convertir la duración del tiempo de Unix en horas, minutos y segundos reales, puede usar el siguiente código:
fuente
fuente
El siguiente código también proporciona milisegundos de 3 dígitos, ideal para prefijos de registro de consola:
fuente
moment.js
https://momentjs.com/
fuente
day.js
github.com/iamkun/dayjsLa respuesta dada por @Aron funciona, pero no funcionó para mí, ya que estaba tratando de convertir la marca de tiempo a partir de 1980. Así que hice algunos cambios de la siguiente manera
Entonces, si tiene una marca de tiempo que comienza en otra década más o menos, solo use esto. Me ahorró mucho dolor de cabeza.
fuente