2010-04-13 24 views
22

que utiliza la siguiente función,¿Por qué javascript getTime() no es una 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 ....

Respuesta

31

Eso es porque su dat1 y dat2 variables son sólo cadenas.

Debe 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 método Date.parse(string) (o new Date(string)) es dependiente de la implementación y el formato aaa-MM-dd funcionará en el navegador moderno pero no en en IE, por lo que prefiero hacerlo manualmente.

9

Para utilizar esta función/método, se necesita una instancia de la clase Fecha.

Este método siempre se utiliza junto con un objeto Fecha.

ver el código de abajo:

var d = new Date(); 
d.getTime(); 

Enlace: http://www.w3schools.com/jsref/jsref_getTime.asp

3

dat1 y dat2 son cadenas en JavaScript. No hay función getTime en el prototipo de cadena. Creo que desea que la función Date.parse(): http://www.w3schools.com/jsref/jsref_parse.asp

que usaría así:

var date = Date.parse(dat1); 
+0

Me llenar decir que debería ser 'fecha var = new Date (Date.parse (DAT1)); ' – Hexodus

Cuestiones relacionadas