Estoy usando el objeto JavaScript Date para convertir milisegundos en una cadena con formato minutes:seconds
legible. Lo necesito para crear un temporizador para un reproductor de video personalizado, donde mi interfaz JS recibe la información de duración del video como un valor de milisegundos.getHours() devuelve el valor incorrecto
Ha sido una tarea bastante trivial, antes de que decidiera admitir la posibilidad de tener un video de más de 59 minutos. Y luego me encontré con este problema: cuando presento un valor de milisegundos para el nuevo constructor del objeto Fecha, y luego llamo al getHours()
, devolverá algo incluso si la cantidad de milisegundos representa un período de menos de una hora. La forma más fácil de ver esto en acción es darle de comer, por ejemplo, 0.
yo esperaría que vuelva 0, pero siempre devuelve 12 (13 en la ópera, lo que hace aún más extraño). ¿Es esto un comportamiento normal o es un error? De cualquier manera, ¿cómo puedo detectar de manera confiable si mi valor en milisegundos está limitado a solo minutos y segundos o también incluye horas?
Gracias.
UPD:
Lo he probado en Chrome 15 y Firefox 7 en OSX: mismo resultado que por la captura de pantalla anterior. No puedo entender cómo usar la consola Opera Dragonfly, pero por lo que veo, sucede lo mismo en Opera, solo con el valor de 13 para getHours()
.
No desea utilizar el constructor 'Date' aquí. 'new Date (n)' devuelve un objeto 'Date' con la fecha establecida en 1 de enero de 1970 +' n' milisegundos, que ciertamente no es lo que quiere ... –
@ ŠimeVidas, entonces ¿cuál sería una buena alternativa? – Arnold
Escribiría mi propia función. –