Código de JavaScript - Obtener la diferencia en días entre dos fechas

Imágen de perfil

Obtener la diferencia en días entre dos fechasgráfica de visualizaciones


JavaScript

estrellaestrellaestrellaestrellaestrella(3)
Actualizado el 08 de Julio del 2015 por Xavi (Creado el 16 de Julio del 2014)
13.293 visualizaciones desde el 16 de Julio del 2014. Una media de 112 por semana
Código que muestra como obtener los días que hay entre dos fechas dadas.
Verifica que las fechas sea correctas, y que la fecha inicial no sea posterior a la fecha final.

Versión 1
estrellaestrellaestrellaestrellaestrella(3)

Publicado el 16 de Julio del 2014gráfica de visualizaciones de la versión: Versión 1
13.295 visualizaciones desde el 16 de Julio del 2014. Una media de 112 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf-8">
 
    <script>
    /**
	 * Documentado en http://lwp-l.com/s2379
	 */
	function isValidDate(day,month,year)
	{
		var dteDate;
		month=month-1;
		dteDate=new Date(year,month,day);
		return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
	}
 
	/**
	 * Funcion para validar una fecha
	 * Tiene que recibir:
	 *  La fecha en formato español dd/mm/yyyy
	 * Devuelve:
	 *  true o false
	 */
	function validate_fecha(fecha)
	{
		var patron=new RegExp("^([0-9]{1,2})([/])([0-9]{1,2})([/])(19|20)+([0-9]{2})$");
 
		if(fecha.search(patron)==0)
		{
			var values=fecha.split("/");
			if(isValidDate(values[0],values[1],values[2]))
			{
				return true;
			}
		}
		return false;
	}
 
    function calcularDias()
    {
		var fechaInicial=document.getElementById("fechaInicial").value;
		var fechaFinal=document.getElementById("fechaFinal").value;
		var resultado="";
		if(validate_fecha(fechaInicial) && validate_fecha(fechaFinal))
		{
			inicial=fechaInicial.split("/");
			final=fechaFinal.split("/");
			// obtenemos las fechas en milisegundos
			var dateStart=new Date(inicial[2],(inicial[1]-1),inicial[0]);
            var dateEnd=new Date(final[2],(final[1]-1),final[0]);
            if(dateStart<dateEnd)
            {
				// la diferencia entre las dos fechas, la dividimos entre 86400 segundos
				// que tiene un dia, y posteriormente entre 1000 ya que estamos
				// trabajando con milisegundos.
				resultado="La diferencia es de "+(((dateEnd-dateStart)/86400)/1000)+" días";
			}else{
				resultado="La fecha inicial es posterior a la fecha final";
			}
		}else{
			if(!validate_fecha(fechaInicial))
				resultado="La fecha inicial es incorrecta";
			if(!validate_fecha(fechaFinal))
				resultado="La fecha final es incorrecta";
		}
		document.getElementById("resultado").innerHTML=resultado;
    }
    </script>
 
</head>
 
<body>
 
<form>
	<p>Introduce la fecha inicial y final en formato español dd/mm/yyyy</p>
	<input type="text" name="fechaInicial" id="fechaInicial" value="16/07/2014">
	<input type="text" name="fechaFinal" id="fechaFinal" value="17/07/2014">
 
	<input type="button" value="Calcular dias" onclick="calcularDias();">
</form>
<div id="resultado"></div>
 
</body>
</html>



Comentarios sobre la versión: Versión 1 (3)

Luis
21 de Enero del 2015
estrellaestrellaestrellaestrellaestrella
que tal bro una pregunta puedes ayudarme con el codigo pero en vez de poner yo la fecha la seleciones de un calendario men ...... claro si se puede gracias de antemano
Responder
Anonimo
01 de Octubre del 2016
estrellaestrellaestrellaestrellaestrella
solo necesitas eso o hay otra cosa????? (sarcasmo) jajajaj
Responder
Luis
04 de Octubre del 2016
estrellaestrellaestrellaestrellaestrella
Lamento haberte molestado bro
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2718