js calcula todas las fechas entre dos fechas

Hay varias situaciones de la siguiente manera:

1. La fecha de inicio es anterior a la fecha de finalización

Año a mes: como 2016-12-30 a 2017-06-12
sin año a mes: 2017-01-02 a 2017-06-12 a 2017-06-01
a 2017-06-12
2. Las dos fechas son iguales, el número de días es 0 y no hay ninguna fecha intermedia 3. La fecha de
inicio es menor que la fecha de finalización, el número de días es 0, y no hay fecha intermedia

PD : el único escollo es que el parámetro del nuevo mes Date() está entre 0 y 11. Es decir, si desea establecer el mes en agosto, el parámetro debe ser 7.

  /**
   **datestr:形如‘2017-06-12’的字符串
  **return Date 对象
   **/
   function getDate (datestr) {
    
    
        var temp = datestr.split("-");
        if (temp[1] === '01') {
    
    
            temp[0] = parseInt(temp[0],10) - 1;
            temp[1] = '12';
        } else {
    
    
            temp[1] = parseInt(temp[1],10) - 1;
        }
        //new Date()的月份入参实际都是当前值-1
        var date = new Date(temp[0], temp[1], temp[2]);
        return date;
    }
  /**
  ***获取两个日期间的所有日期
  ***默认start<end
  **/
  function getDiffDate (start, end) {
    
    
        var startTime = getDate(start);
        var endTime = getDate(end);
        var dateArr = [];
        while ((endTime.getTime() - startTime.getTime()) > 0) {
    
    
            var year = startTime.getFullYear();
            var month = (startTime.getMonth()+1).toString().length === 1 ? "0" + (parseInt(startTime.getMonth().toString(),10) + 1) : (startTime.getMonth() + 1);
            var day = startTime.getDate().toString().length === 1 ? "0" + startTime.getDate() : startTime.getDate();
            dateArr.push(year + "-" + month + "-" + day);
            startTime.setDate(startTime.getDate() + 1);
        }
        return dateArr;
    }

Métodos utilizados:
getTime() : Devuelve el número de milisegundos desde el 1 de enero de 1970 hasta el presente.
getDate(): devuelve la fecha, un determinado día del mes
setDate(): establece la fecha, un determinado día del mes

Supongo que te gusta

Origin blog.csdn.net/weixin_42342065/article/details/128546895
Recomendado
Clasificación