¿Cómo almacenar todas las fechas en una array presente entre dos fechas dadas en JavaScript?

Dadas dos fechas y la tarea es obtener la array de fechas entre las dos fechas dadas usando JavaScript.

Enfoque 1:

  • Seleccione la primera y última fecha y guárdela en variable.
  • Verifique si la fecha de inicio es menor que la fecha de finalización, luego presione la fecha actual en una array e incremente su valor en 1 día.
  • Repita el paso anterior hasta que la fecha actual sea igual a la última fecha.

Ejemplo: En este ejemplo, la array de fechas está determinada por el enfoque anterior.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to get the array of dates between
        two dates in JavaScript ?
    </title>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color:green;" > 
        GeeksForGeeks
    </h1>
      
    <p id = "GFG_UP" style =
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <button onclick = "GFG_Fun()">
        click here
    </button>
      
    <p id = "GFG_DOWN" style =
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
      
        el_up.innerHTML = "Click on the button to get the "
                    + "array of dates between 2 dates.";
          
        Date.prototype.addDay = function(days) {
            var date = new Date(this.valueOf());
            date.setDate(date.getDate() + days);
            return date;
        }
          
        function getDate(strDate, stpDate) {
            var dArray = new Array();
            var cDate = strDate;
            while (cDate <= stpDate) {
                  
                // Adding the date to array
                dArray.push(new Date (cDate) + '<br>'); 
                  
                // Increment the date by 1 day
                cDate = cDate.addDay(1); 
            }
            return dArray;
        }
          
        function GFG_Fun() {
            var startDate = new Date();
              
            // Making lastDate equal to 4 more days
            // from startDate.
            var endDate = startDate.addDay(4); 
            el_down.innerHTML = getDate(startDate, endDate);
        }
    </script> 
</body> 
  
</html>    

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Enfoque 2:

  • Obtenga la primera y la última fecha y guárdela en la variable.
  • Calcula el equivalente de 1 día en milisegundos llamado _1Day.
  • Establezca una variable igual a la fecha de inicio, llamada ms
  • Presione ms (milisegundos) en forma de fecha en una array e incremente su valor en _1Día.
  • Repita el paso anterior hasta que el ms sea igual a la última fecha.

Ejemplo: En este ejemplo, la array de fechas está determinada por el enfoque anterior.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to get the array of dates between
        two dates in JavaScript ?
    </title>
</head> 
  
<body style = "text-align:center;"> 
  
    <h1 style = "color:green;" > 
        GeeksForGeeks
    </h1>
  
    <p id = "GFG_UP" style =
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <button onclick = "GFG_Fun()">
        click here
    </button>
      
    <p id = "GFG_DOWN" style = 
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
          
        el_up.innerHTML = "Click on the button to get the "
                + "array of dates between 2 dates.";
          
        Date.prototype.addDay = function(days) {
            var date = new Date(this.valueOf());
            date.setDate(date.getDate() + days);
            return date;
        }
          
        function getDates( date1, date2 ) {
            var _1Day = 24*3600*1000;
              
            // Date[] keeps all the dates
            for (var date = [], ms = date1 * 1, last = date2 * 1;
                            ms < last ; ms += _1Day) { 
                                  
                // Adding ms to the date and ms+= _1Day
                // increments the date by 1 day
                date.push( new Date(ms) + '<br>');
            }
              
            return date;
        }
          
        function GFG_Fun() {
            var startDate = new Date();
              
            // Making lastDate equal to 4 more days
            // from startDate
            var endDate = startDate.addDay(4); 
            el_down.innerHTML = getDates(startDate, endDate);
        }
    </script> 
</body> 
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *