Será ótimo conseguir obter / definir a instância do momento para o último dia do mês - semelhante ao eod.
Acho que por enquanto isso funciona:
momento (). add ('meses', 1) .data (1) .subtrair ('dias', 1)
Além disso, os setters transbordam se estiverem fora do alcance.
moment().date(0); // the last day of last month
moment().date(-1); // the second to last day of last month
moment().hours(25); // 1 am the next day
Então você poderia fazer algo assim ...
moment().add('months', 1).date(0);
moment().endOf('month');
funciona desde 1.7
moment().endOf('month');
ou
moment(year-month-day).endOf('month');
@ lance-ding Obrigado! Isso foi definitivamente útil.
Ainda acho que seria bom ter uma opção .format()
para o número de dias do mês atual.
Relacionado: você também pode usar moment().daysInMonth()
para obter um número inteiro que representa o último dia do mês.
Relacionado:
Aviso de descontinuação:
moment().add(period, number) is deprecated. Please use moment().add(number, period).
Portanto, uma pequena mudança no código seria: moment().add(1, 'months').date(1).subtract('days', 1)
@gideonapollob , sim. Você precisaria reverter em seu .subtract()
também.
Mas .endOf()
é quase com certeza a melhor escolha para o que você está fazendo.
Você pode obter o último dia do mês. assim.
moment(2017-10).endOf('month').format('DD')
que mostra a data do último mês
momento (). subtrair (1, 'meses'). endOf ('mês'). formato ('DD-MM-AAAA')
Comentários muito úteis
funciona desde 1.7