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

202
Vistas
¿Cómo obtengo la actividad del usuario cada 30 días desde la fecha de inicio de la suscripción y la actividad de los días restantes en un objeto diferente a partir de hoy?

Tengo una aplicación basada en suscripción donde los usuarios se registrarán y se les pagará por el trabajo que realizarán diariamente. Hay ciertas reglas para el pago.

  • El usuario sólo podrá retirar el importe cada 30 días a partir del día en que se haya registrado.
  • El registro se basa en suscripción, por lo que habrá una fecha de vencimiento para el plan de cada usuario.
  • Necesito calcular dos cosas. Cantidad ganada cada 30 días hasta hoy y cantidad restante de un mes incompleto hasta hoy (mes actual o días restantes que son menos de 30)
 import {differenceInDays, parseISO} from "date-fns"; let differenceDays = differenceInDays(new Date(), parseISO(startDate)) // subscription start date let multiplier = parseInt(differenceDays / 30) // integer value let remainder = differenceDays % 30 // remainig days from above divition

Esto es lo más lejos que pude llegar y parece que no puedo encontrar una manera de hacerlo. Estoy usando una marca de tiempo para guardar cada transacción y los datos provienen de la tabla de PostgreSQL al nodo.

El bloque de datos es algo como esto.

 let data = [ {date:'2021-05-26 18:36:55.767', income:888, start_date:'2021-05-26 18:36:55.767', end_date:'2021-05-26 18:36:55.767'}, {date:'2022-05-01 18:36:55.767', income:200, ...}, // same as above {date:'2021-07-26 18:36:55.767', income:888, ...}, {date:'2023-01-26 18:36:55.767', income:300, ...}, {date:'2021-02-26 18:36:55.767', income:888, ...}, {date:'2023-08-26 18:36:55.767', income:444, ...}, {date:'2023-09-26 18:36:55.767', income:888, ...}, {date:'2024-01-26 18:36:55.767', income:541, ...}, {date:'2024-12-26 18:36:55.767', income:888, ...}, {date:'2024-07-26 18:36:55.767', income:336, ...}, {date:'2025-01-26 18:36:55.767', income:888, ...}, {date:'2025-07-26 18:36:55.767', income:519, ...}, ] // for demonstration purpose only // start_date => subscription start date // end_date => subscription expiry date

Los datos provienen de la base de datos PostgreSQL que tiene dos tablas de transacciones unidas con suscripciones y esto se une a esas dos tablas.

Por cada 30 días quiero decir, al completar los 30 días obtendrán la cantidad a la que tienen derecho. esta cantidad se puede retirar en cualquier momento después de este período de 30 días.

30 días => 4360 // Cantidad ganada en los primeros 30 días

31 - 59 días => pueden retirar el monto anterior y este monto mensual se acumula en su cuenta.

60 días => 3950 // Importe ganado en los 2.º 30 días

61 - 89 días => 4360 + 3950 se pueden retirar si el usuario aún no ha retirado 4360

about 4 years ago · Juan Pablo Isaza
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