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

82
Vistas
Cómo verificar si el valor de fecha/hora se encuentra dentro de cierto rango

Tengo un ciclo extremadamente simple, pero estoy completamente atascado en cómo verificaría una variable de fecha y hora.

Tengo una hoja de cálculo muy grande donde una de las columnas incluye celdas con el siguiente formato: "M/DD/YYYY, H:MM PM/AM"

Entonces, por ejemplo, podría verse así: "25/5/2022, 6:45 p.m."

Estoy ejecutando un ciclo a través de la hoja y cuando encuentra esta celda, actualmente estoy ocultando toda la fila si la celda tiene el valor "25/5/2022, 6:45 p.m.". Sin embargo, lo que realmente quiero hacer es solo ocultar la fila si el valor está entre las 12 p. m. y las 8 p. m. Estoy completamente perdido en cuanto a cómo hacer esto, ¿alguien tiene alguna sugerencia?

Mi guión actual:

 let ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName("Sheet2"); let lastRow = sheet.getLastRow(); let flaggedDate = sheet.getRange(1, 11, lastRow).getValues(); for (i=0; i <= lastRow; i++) { if (flaggedDate[i] == "5/25/2022, 4:30 PM") { sheet.hideRows(i+1); } } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Prueba esto

 function ltesto() { let ds = "5/25/2022, 4:30 PM"; let dtv = new Date(ds).valueOf(); let ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName("Sheet2"); let lastRow = sheet.getLastRow(); let flaggedDate = sheet.getRange(1, 11, lastRow).getValues(); for (i = 0; i <= lastRow; i++) { Logger.log(Utilities.formatDate(new Date(flaggedDate[i]),Session.getScriptTimeZone(),"MMM/dd/yyyy HH:mm")); if (new Date(flaggedDate[i]).valueOf() == dtv ) { sheet.hideRows(i + 1); } } }

Si esto no funciona, es posible que deba dividir las cadenas de fecha y reconstruir la fecha con el constructor de fecha. Pero ya lo probé en la cadena proporcionada y parece reconocer la fecha correctamente. Y cuando digo fecha, me refiero a fecha y hora.

Solo una función simple para verificar si el constructor de fecha reconoce su cadena de fecha

 function test() { let ds = "5/25/2022, 6:45 PM"; let dt = new Date(ds); let dts = Utilities.formatDate(dt, Session.getScriptTimeZone(), "MMM/dd/yyyy HH:mm"); Logger.log(dts); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si este es un proyecto puramente javascript, aquí está el código, pero si tiene un backend como PHP involucrado, hay una opción y, en mi opinión, es mejor hacerlo en el backend.

 // JAVASCRIPT CODE let str_date = "5/25/2022, 8:30 PM"; let [time, modifier] = str_date.split(', ')[1].split(' '); let [hour, minute] = time.split(':'); modifier = modifier.toLocaleLowerCase(); if(hour == 12 && modifier == 'am') hour = '00'; else if(hour == 12 && modifier == 'pm') hour = 12; else hour = modifier == 'am' ? '0'+hour : parseInt(hour) + 12; console.log(hour); if(parseInt(hour) >= 12 && parseInt(hour) <= 20) { console.log("There you go!"); }

AQUÍ ESTÁ EL PHP TAMBIÉN

 <?php $str_date = '5/25/2022, 4:30 AM'; $date_array = explode(',', $str_date); // convert time to 24 hour clock $_24hour = date("H:i", strtotime(trim($date_array[1]))); $_24hour_array = explode(':', $_24hour); if($_24hour_array[0] >= 12 && $_24hour_array[0] <= 20) { echo "It's that time!"; }
about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda