Mam dylemat rzućcie okiem na dane wejściowe do noda get history
i powiedzcie co robię źle.
jak widać data od kiedy ma być pobrana historia:
msg.datexStart
jak widać data do kiedy ma być pobrana historia:
msg.datexEnd
jest zgodnia z przykładem podanym w nodzie.
Date parsuje funkcja:
function toTimestamp(strDate) {
var datum = Date.parse(strDate);
return datum;
}
function dateToLocalISO(date) {
const off = date.getTimezoneOffset()
const absoff = Math.abs(off)
return (new Date(date.getTime() - off * 60 * 1000).toISOString().substr(0, 23) +
(off > 0 ? '-' : '+') +
Math.floor(absoff / 60).toFixed(0).padStart(2, '0') + ':' +
(absoff % 60).toString().padStart(2, '0'))
}
var d = new Date(msg.datawywoz);
msg.datexEnd = dateToLocalISO(d);
msg.datexEnd = msg.datexEnd.substring(0, 19) + msg.datexEnd.substring(23, 29)
var d2 = toTimestamp(d);
d2 = new Date(d2 - (1000*60*60));
msg.datexStart = dateToLocalISO(d2);
msg.datexStart = msg.datexStart.substring(0, 19) + msg.datexStart.substring(23, 29)
return msg;
EDIT:
Błędna statystyka na poprzednim zdjęciu:
skończyły mi się pomysły.
Update: 2023-01-23
Jeżeli ręcznie wklepie daty z zmiennych msg. to dostaje prawidłowy wynik
O co może chodzić… format zmiennych? W funkcji string musze przekonwertować na format daty?
Edit:
No to rozwiązanie:
zmiana nazwy zmiennych:
function toTimestamp(strDate) {
var datum = Date.parse(strDate);
return datum;
}
function dateToLocalISO(date) {
const off = date.getTimezoneOffset()
const absoff = Math.abs(off)
return (new Date(date.getTime() - off * 60 * 1000).toISOString().substr(0, 23) +
(off > 0 ? '-' : '+') +
Math.floor(absoff / 60).toFixed(0).padStart(2, '0') + ':' +
(absoff % 60).toString().padStart(2, '0'))
}
var d = new Date(msg.datawywoz);
msg.enddate = dateToLocalISO(d);
msg.enddate = msg.enddate.substring(0, 19) + msg.enddate.substring(23, 29)
var d2 = toTimestamp(d);
var d3 = new Date(d2 - (1000 * 60 * 15));
d2 = new Date(d2 - (1000*60*60));
msg.startdate = dateToLocalISO(d2);
msg.startdate = msg.startdate.substring(0, 19) + msg.startdate.substring(23, 29);
msg.startdateMsg = dateToLocalISO(d3);
msg.startdateMsg = msg.startdateMsg.substring(0, 19) + msg.startdateMsg.substring(23, 29)
return msg;
czyli:
msg.startdate
i msg.enddate
i nod pobiera dane z wiadomości.