• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

221
Vistas
Generar marcas de tiempo divididas uniformemente para cada correo electrónico en una matriz

Necesito generar un tiempo de send_at que se divida uniformemente por los segundos en un día laboral de 6 am a 6 pm.

Por el bien de esto, se utilizará una lista de 500 correos electrónicos.

 var emailList = ["agent0@email.com", "agent1@email.com", "agent2@email.com", ...]; //List of 500 Emails var currentTime = new Date().getTime(); //Unix Time Stamp for right now var day = 86400/2; //12 hours in seconds(6am-6pm) var interval = Math.ceil(day/emailList.length); // Every 86.4 second for 500 rounded to 87

Simplemente no puedo entender cómo pasar este punto.

Objetivo final: necesito una función que pueda tomar un valor de entrada de una matriz llena de correos electrónicos, dividir esa longitud de matrices por el día laboral de 12 horas de 6 am a 6 pm, y luego generar una matriz u objeto de tiempos para enviar cada correo electrónico y tal vez ese correo también...

Entrada: myFuncton(emailList)

Salida: [{email: "agent0@email.com", send_at: 1657559806}, {email: "agent1@email.com", send_at: 1657559893}, {email: "agent2@email.com", send_at: 1657559980}]

over 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Recorra la matriz, agregando cada vez el intervalo para la marca de tiempo.

 var emailList = ["agent0@email.com", "agent1@email.com", "agent2@email.com"]; var currentTime = new Date().getTime(); //Unix Time Stamp for right now var day = 12 * 60 * 60 * 1000; var interval = Math.ceil(day / emailList.length); var result = []; var send_at= currentTime; emailList.forEach(function(email) { result.push({ email: email, send_at: send_at, human_time: new Date(send_at) }) send_at+= interval; }) console.log(result)

over 3 years ago · Juan Pablo Isaza Denunciar

0

Puede anotar el tiempo de startTime y el tiempo de endTime de la ventana de tiempo y luego calcular el intervalo de tiempo total timeSpan . Luego divida el tiempo total por la cantidad de correos electrónicos para calcular la longitud del intervalLength .

A partir de ahí, puede calcular el tiempo de envío de cada correo electrónico con la fórmula startTime + intervalLength * index

 const emailList = Array(500).fill().map((_, i) => 'email_'+i); // Placeholder email list const startTime = new Date().setHours(6, 0, 0, 0) const endTime = new Date(startTime).setHours(18); const timeSpan = endTime - startTime; const intervalLength = timeSpan / emailList.length; const output = emailList.map((email, i) => ({ email, send_at: startTime + intervalLength*i })); console.log(output);

over 3 years ago · Juan Pablo Isaza 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda