Foros del Web » Programación para mayores de 30 ;) » .NET »

JavaScript

Estas en el tema de JavaScript en el foro de .NET en Foros del Web. [WebForms] [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 ...
  #1 (permalink)  
Antiguo 30/03/2005, 08:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 4 meses
Puntos: 0
JavaScript

[WebForms]
[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:
function 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 + "'";
	}
} 
Alguien podria decirme que falta para que trabaje en formato dd/MM/yyyy

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
__________________
langdotnet

Última edición por lang.net; 30/03/2005 a las 14:31 Razón: Sin Respuesta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:33.