Estoy tratando de revisar una columna que tiene algunas fechas aleatorias y encontrar la fecha de hoy y luego guardar esa fila en una variable. Honestamente, escribí el código para hacer eso, pero por alguna razón no funciona y no sé por qué.
Este es mi código.
const ss = SpreadsheetApp.openByUrl(THIS).getSheetByName("Daily PO Dashboard"); let birthday = new Date(2022, 1, 21,3,00,00) for(var row=0; row<data.length; row++){ if(data[row][16]==birthday){ Logger.log(" I'm in!") ss.getRange('B3:AA').setValue(data[row]); } } var checkBox = ss.getRange('A3:A').insertCheckboxes();
También traté de establecer el cumpleaños como
var birthday = new Date();
pero nada me funciona.
Esto es con lo que estoy comparando.
[
Nota: nunca va en la instrucción if
estos son datos [fila] [16] cuando lo registro.
Nota: hay más, pero todas son fechas o son nulas
También logger.log (tipo de datos [fila] [17]), y obtuve una cadena.
Usar cadenas y Utilities.formatDate() me parece un poco de fuerza bruta. Si tengo que comparar fechas, elimino la hora y luego uso valueOf() para comparar fechas.
function dummy() { try { var d1 = new Date(); Utilities.sleep(100); var d2 = new Date(); console.log(d1); console.log(d2); // Notice in console log they look alike but are different by 100 msec. console.log( d1.valueOf() === d2.valueOf() ); function removeTime(date) { return new Date(date.getFullYear(),date.getMonth(),date.getDate()); } d1 = removeTime(d1); d2 = removeTime(d2); console.log(d1); console.log(d2); console.log( d1.valueOf() === d2.valueOf() ); } catch(err) { console.log(err); } } 2:46:07 PM Notice Execution started 2:46:07 PM Info Mon Feb 21 2022 17:46:07 GMT-0500 (Eastern Standard Time) 2:46:07 PM Info Mon Feb 21 2022 17:46:07 GMT-0500 (Eastern Standard Time) 2:46:07 PM Info false 2:46:07 PM Info Mon Feb 21 2022 00:00:00 GMT-0500 (Eastern Standard Time) 2:46:07 PM Info Mon Feb 21 2022 00:00:00 GMT-0500 (Eastern Standard Time) 2:46:07 PM Info true 2:46:07 PM Notice Execution completed