[JavaScript]
Hola a todos, estoy tratando de crear una función en javascript que simule el datediff del SQLSERVER, esta funcion recibe como parametros el intervalo("d"=numero de dias, "h"=numero de horas, etc), fecha de inicio, fecha de fin.
y le envio a mi funcion lo siguiente:
var inicio = document.Form1.txtInicio.value;//01/01/2005
var fin = document.Form1.txtFin.value;//02/01/2005
var dias = dateDiff("d",inicio,fin);
Y la respuesta es : 31 ... debiendo ser solamente 1.
Es decir el formato de esta funcion esta trabajando como dd/MM/yyyy y yo tengo mi aplicacion con dd/MM/yyyy...
Esta es la funcion.
Código:
Alguien podria decirme que falta para que trabaje en formato dd/MM/yyyyfunction dateDiff(p_Interval, p_Date1, p_Date2){ var dt1 = new Date(p_Date1); var dt2 = new Date(p_Date2); var iDiffMS = dt2.valueOf() - dt1.valueOf(); var dtDiff = new Date(iDiffMS); var nYears = dtDiff.getUTCFullYear()-1970; var nMonths = dtDiff.getUTCMonth() + (nYears!=0 ? nYears*12 : 0); var nQuarters = parseInt(nMonths/3); var nWeeks = parseInt(iDiffMS/1000/60/60/24/7); var nDays = parseInt(iDiffMS/1000/60/60/24); var nHours = parseInt(iDiffMS/1000/60/60); var nMinutes = parseInt(iDiffMS/1000/60); var nSeconds= parseInt(iDiffMS/1000); var nMilliseconds = iDiffMS; var iDiff = 0; switch(p_Interval.toLowerCase()){ case "yyyy": return nYears; case "q": return nQuarters; case "m": return nMonths; case "y": // day of year case "d": return nDays; case "w": return nDays; case "ww":return nWeeks; case "h": return nHours; case "n": return nMinutes; case "s": return nSeconds; case "ms":return nMilliseconds; default: return "intervalo no válido: '" + p_Interval + "'"; } }
O haber si me ayudan de otra manera, yo necesito crear una funcion que en base a dos fechas me retorne en numero de meses que ahn transcurrido entre esas dos fechas pero con la perticularidad de que si han transcurrido 3meses y dos dias la respuesta debera ser "han transcurrido 4 meses", gracias pipol.
Saludos cordiales