Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

80
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda