Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
¿Cómo obtengo los días entre el día de hoy y el último día del mes usando Moment.js?

Aquí está el código que tengo ahora mismo:

 const moment = require('moment') const m = moment const currDay = m().format('D') const dayOfWeek = m().format('dddd') const daysInMonth = m().daysInMonth() const startOfMonth = moment().startOf('month').format('YYYY-MM-DD hh:mm'); const endOfMonth = moment().endOf('month').format('YYYY-MM-DD hh:mm');

Necesito crear una fila de calendario donde el primer elemento sería la fecha de hoy, y el resto de los elementos del calendario serían la cantidad de días que quedan dependiendo del mes actual para poder representar cada día intermedio en mi HTML con Vue.

Ejemplo: mié 8, jue 9, vie 10 ... vie 31.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que el OP se equivoca con el error común de formatear prematuramente. format es bueno para ver un resultado intermedio, pero hacerlo produce una cadena que no es buena para cálculos adicionales.

Intente manejar solo objetos de fecha. Convierta a cadenas solo cuando deba: (a) presentar a un lector humano, o (b) serializar para almacenamiento o transmisión.

Trabajando sin formatear...

 const daysRemainingThisMonth = moment().endOf('month').diff(moment(), 'days'); console.log(`There are ${daysRemainingThisMonth} days remaining this month`)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

over 4 years ago · Santiago Trujillo Denunciar

0

Al igual que un equivalente de POJS, si tiene una función para devolver el último día del mes, puede usar eso y obtener la diferencia entre las dos fechas, por ejemplo

 function getMonthEnd(date = new Date()) { return new Date(date.getFullYear(), date.getMonth() + 1, 0); } function getMonthDaysLeft(date = new Date()) { return getMonthEnd(date).getDate() - date.getDate(); } let d = new Date(); console.log(`There are ${getMonthDaysLeft(d)} days left in ${d.toLocaleString('en',{month:'long'})}.`);

Para obtener una lista/matriz de los días restantes, simplemente recorra una fecha, agregue 1 día a la vez y escriba las fechas en el formato requerido en la lista:

 function getMonthDaysLeftAsList(date = new Date()) { let d = new Date(+date); // Formatter let f = new Intl.DateTimeFormat('en',{ day: 'numeric', month: 'short' }); let m = d.getMonth(); let dayList = []; while (d.getMonth() == m) { dayList.push(f.format(d)); d.setDate(d.getDate() + 1); } return dayList; } console.log(getMonthDaysLeftAsList());

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda