Estoy tratando de usar datos de https://www.cryptocompare.com/ api. Lo bueno es que, cuando quiero crear un nuevo objeto de fecha con esa marca de tiempo, obtengo el martes 20 de enero de 1970 07:09:15 GMT + 0100 (Mitteleuropäische Normalzeit). La marca de tiempo es correcta, lo verifiqué en https://timestampgenerator.com/date-from-timestamp .
requestLatestNews();
function requestLatestNews() {
fetch(`https://min-api.cryptocompare.com/data/v2/news/?lang=EN&api_key=<key>`)
.then((response) => {
console.log(response);
return response.json();
})
.then((data) => {
console.log(data);
return data;
})
.then((data) => {
for (let i = 0; i < data.Data.length; i++) {
let publishDate = new Date(data.Data[i].published_on); // Falsche Berechnung
console.log(publishDate);
let dmy = publishDate.getUTCDate() + "/" + (publishDate.getUTCMonth() + 1) + "/" + publishDate.getUTCFullYear();
let hms = publishDate.getUTCHours() + ":" + publishDate.getUTCMinutes() + ":" + publishDate.getUTCSeconds();
document.querySelector('#output').innerHTML
+= `<p> <a href="${data.Data[i].guid}">${data.Data[i].source}</a> - ${data.Data[i].title}, ${dmy} ${hms}</p>
<img src="${data.Data[i].imageurl}"></img> <p> [${data.Data[i].tags} ${data.Data[i].categories}] </p>
<p> ${data.Data[i].body} </p>`;
}
})
.catch((error) => {
console.log('Error Code: ' + error);
});
}
Creo que debería echar un vuezo al constructor de fechas para JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
Citando de la documentación:
Un valor entero que representa el número de milisegundos desde el 1 de enero de 1970, 00:00:00 UTC (la época de ECMAScript, equivalente a la época de UNIX ), ignorando los segundos bisiestos. Tenga en cuenta que la mayoría de las funciones de marca de tiempo de UNIX solo son precisas al segundo más cercano.
También puede probar el valor que recibe en esa página.