JavaScript - Resta de 2 fechas en JS

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 37 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Resta de 2 fechas en JS

Publicado por celest (3 intervenciones) el 18/03/2021 07:38:40
Estoy trabajando en un formulario con 2 input tipo date, donde selecciono una fecha inicial, y fecha final, y quería obtener la resta de ambas fechas, y que lo coloque en otro input por medio de JavaScript,

Ejemplo si en el primer input selecciono la fecha 20/02/2021 y el el segundo input selecciono 15/02/21 obtenga la resta de 5

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
        <input type="date" name="fecha_Inicial" id="fecha_Inicial">
        <input type="date" name="fecha_Final" id="fecha_Final">
        <input type="text" name="resta" id="resta">
    </body>
 
</html>

En JS tengo

1
2
3
4
5
6
7
8
9
10
$("#fecha_Inicial, #fecha_Final,#resta").change(function(){
 
    var FechaInicial =  $("#fecha_Inicial").val(); //ejemplo 20/02/2021
 
    var FechaFinal = $("#fecha_Final").val(); //ejemplo 15/02/2021
 
 
    var diferencia = Math.abs(FechaInicial.getTime()-FechaFinal.getTime());
 
        $("#resta").val(diferencia); //en #resta deberia mostrarse la resta de ambas fechas segun el ejemplo deberia de ser 5 

Pero no obtengo nada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Resta de 2 fechas en JS

Publicado por joel (895 intervenciones) el 18/03/2021 08:11:21
Hola Celest, para poder ejecutar el getTime(), tienes que hacerlo sobre un objeto Date() y tu lo estas intentando obtener de una cadena.

Si revisas la consola del navegador veras que te da el error: Uncaught TypeError: FechaInicial.getTime is not a function

Para solucionarlo tienes que pasar los strings a Date(), luego puedes utilizar la funcion getTime(), pero esta función, devuelve los milisegundos de una fecha dada, por lo que tendrás que pasarlo a días.

Aquí lo tienes solucionado para que lo puedas revisar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
        <input type="date" name="fecha_Inicial" id="fecha_Inicial">
        <input type="date" name="fecha_Final" id="fecha_Final">
        <input type="text" name="resta" id="resta">
    </body>
 
</html>
 
<script>
$("#fecha_Inicial, #fecha_Final,#resta").change(function(){
 
    var FechaInicial = new Date($("#fecha_Inicial").val()); //ejemplo 20/02/2021
    var FechaFinal = new Date($("#fecha_Final").val()); //ejemplo 15/02/2021
 
    var diferencia = Math.abs((FechaInicial.getTime()-FechaFinal.getTime())/86400000);
 
    $("#resta").val(diferencia); //en #resta deberia mostrarse la resta de ambas fechas segun el ejemplo deberia de ser 5
});
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 37 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Resta de 2 fechas en JS

Publicado por celest (3 intervenciones) el 18/03/2021 08:20:33
Enserio mil, millones de gracias, apenas estoy empezando en todo esto y me cuesta un poco, pero enserio mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar