Как складывать или уменьшать только рабочие дни в momentjs?

Я работаю с датами, и нуждаюсь в том, чтобы вычислить различие между двумя днями, но исключая выходные.

Например

если я имею

fecha_inicio: 05/03/2018
fecha_final: 13/03/2018

Он был бы должен получать в 7 дней исключая в 10-ые и 11-ые числа, которые являются субботой и воскресеньем.

Я стараюсь вычислять это с:

var inicio = moment(fecha_inicio);
var final = moment(fecha_final);
final.diff(inicio,"days");

Но это возвращает мне 8.

Как он мог бы решать это?

2
задан 05.03.2018, 21:51
2 ответа
 /*Con este se establece fechas de pago pero excluyendo los dias domingos, si el dia es domingo se le suma 1 al contador de domingos y se pone la fecha posterior USANDO MOMENT JS es facil*/

     for(let i=1;i<=cuotas;i++){
                 if(moment().add({'days':i+d}).format('dddd')==='domingo'){
                     d=d+1// OJO---->en esta variable se suma 1 cada ves que encuentra un domingo
                     newPago=new Pago({numero:i,fechaBono:moment().add({'days':i+d}),abono:cuotaAPagar})//creamos un pago asignandole el numero del contador
                     newPago.prestamo=newPrestamo//le asignamos en la propiedad prestamo de pago el objeto newPrestamo recien creado
                     newPago.save()//guardamos el nuevo pago

                     newPrestamo.pagos.push(newPago)//en el newPrestamo creado le pasamos al arreglo pagos el objeto newPago
                     await newPrestamo.save()//guardamos en newPrestamo

                 }else{
                    newPago=new Pago({numero:i,fechaBono:moment().add({'days':i+d}),abono:cuotaAPagar,fechaPagoAbono:moment().add({'days':i+d})})//creamos un pago asignandole el numero del contador
                    newPago.prestamo=newPrestamo//le asignamos en la propiedad prestamo de pago el objeto newPrestamo recien creado
                    newPago.save()//guardamos el nuevo pago

                    newPrestamo.pagos.push(newPago)//en el newPrestamo creado le pasamos al arreglo pagos el objeto newPago
                    await newPrestamo.save()//guardamos en newPrestamo
                 }

              }
0
ответ дан 24.11.2019, 01:21

Работая в чем-то сходном implementГ© одна soluciГіn, что может подавать их, в моем случае я funcionГі: (Этот пример arrojarГ, - в который в ранге дат есть 3 sГЎbados и 3 воскресенья)

var fecha_inicio = '17/04/2019';
var fecha_final = '8/05/2019';

inicio = moment(fecha_a);
fin = moment(fecha_b);
diferencia_dias = parseInt(fin.diff(inicio, 'days')) + parseInt(1); // Añadimos un dia mas para que cuente todos los dias incluyendo el inicial

num_dia = (parseInt(inicio.isoWeekday()));

for(i=1;i<=diferencia_dias;i++){
    if(num_dia == 6){
      alert('sabado');
      // Do something....
    }
    if(num_dia == 7){
      alert('domingo');
      num_dia=0;
      // Do something....
    }
    num_dia++;
  }

Конечно могут улучшать этот cГіdigo, но bГЎsicamente с этим уже возможно начинать контролировать mГЎs вещи считая sГЎbados и воскресенья.

типов Привета

2
ответ дан 24.11.2019, 01:21