Necesito crear una segunda función que reste el tiempo registrado de esto en segundos. Actualmente, esta función mostrará el tiempo como event_time: 02:24:25 , lo cual es genial, solo necesito tomar mi tiempo registrado en segundos, por ejemplo, 85 segundos y restarlo de este valor.
por lo que si DateTimeFun es 02:24:25 y recordedTime = 60, la nueva función devolvería 02:23:25, restando 1 minuto.
let recordedTime = parseInt(inputData.new_value) - parseInt(inputData.previous_value); let dateTimeFun = function (d) { let h = d.getHours(); let m = d.getMinutes(); let s = d.getSeconds(); if (h < 10) h = '0' + h; if (m < 10) m = '0' + m; if (s < 10) s = '0' + s; return h + ':' + m + ':' + s; }Una función simple para restar segundos de una fecha:
let subtractSeconds = (d1, seconds) => { console.log(d1); const ms = d1.getTime(); const ms2 = ms - seconds * 1000; const d2 = new Date(ms2); console.log(d2); return d2; }; subtractSeconds(new Date(), 100);Entonces, asumiendo que d es una fecha, puedes hacer:
dateTimeFun(subtractSeconds(d, secondsToSubtract));const subtract = (JSDate, seconds) => new Date(JSDate - (seconds * 1000)) const now = new Date(); const date = subtract(now, 10); console.log(now); // Thu Jan 27 2022 00:27:29 GMT-0300 (Uruguay Standard Time) console.log(date); // Thu Jan 27 2022 00:27:19 GMT-0300 (Uruguay Standard Time)