now - milliseconds to date javascript
¿Por qué javascript getTime() no es una función? (3)
Utilicé la siguiente función,
function datediff()
{
var dat1 = document.getElementById(''date1'').value;
alert(dat1);//i get 2010-04-01
var dat2 = document.getElementById(''date2'').value;
alert(dat2);// i get 2010-04-13
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var diffDays = Math.abs((dat1.getTime() - dat2.getTime())/(oneDay));
alert(diffDays);
}
me sale el error dat1.getTime()
no es una función ....
Esto se debe a que sus variables dat1
y dat2
son solo cadenas.
Debería analizarlos para obtener un objeto Date
, para ese formato siempre uso la siguiente función:
// parse a date in yyyy-mm-dd format
function parseDate(input) {
var parts = input.match(/(/d+)/g);
// new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based
}
Utilizo esta función porque el Date.parse(string)
(o la new Date(string)
) depende de la implementación , y el formato aaaa-MM-dd funcionará en el navegador moderno pero no en IE, por lo que prefiero hacerlo manualmente.
Para usar esta función / método, necesita una instancia de la clase Fecha .
Este método siempre se utiliza junto con un objeto Date .
Vea el código a continuación:
var d = new Date();
d.getTime();
dat1 y dat2 son cadenas en JavaScript. No hay una función getTime en el prototipo String. Creo que quieres la función Date.parse (): http://www.w3schools.com/jsref/jsref_parse.asp
Lo usarías así:
var date = Date.parse(dat1);