Конвертируйте метку времени в дату и получите формат ЧЧ: ММ - PullRequest
0 голосов
/ 25 сентября 2019

Я получаю объект JSON из погодного API DarkShy и хочу получить доступ к временной метке для каждого отчета для диаграммы Chart.JS, где я буду отображать температуру в течение дня, сейчас я застрял в преобразовании временной метки.в формате ЧЧ: ДД: СС.

Это то, что я пробовал

// Displays the wrong time according to https://www.epochconverter.com/
var timeofDay = new Date(daily[i].time)
time.push( timeofDay.toTimeString().split(' ')[0] )

// Gets rid off the time, tho It get the date correctly
var timeofDay = new Date(parseFloat(daily[i].time) * 1000)
time.push( timeofDay )

// Returns the wrong date and time
time.push(new Date(daily[i]))

Вот как я перебираю файл JSON

let time = []
let temperatureDaily = []

for(var i=0; i<daily.length; i++){
 // Push the values into the arrays
 var timeofDay = new Date(parseFloat(daily[i].time) * 1000)
                        time.push( timeofDay )

 temperatureDaily.push( (parseFloat(daily[i].temperatureHigh) + parseFloat(daily[i].temperatureLow)) /2)
}
console.log(time);

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Если вас интересует только время, и кажется, что вы хотите использовать UTC, используйте методы UTC для форматирования времени.Или вы можете использовать toISOString и обрезать ненужные биты, например,

let timeValue = 1569304800;
let d = new Date(timeValue * 1000);

// Use toISOString
let hms = d.toISOString().substr(11,8);
console.log(hms);

// Manual format
function toHMS(date){
  let z = n => ('0'+n).slice(-2);
  return `${z(d.getUTCHours())}:${z(d.getUTCMinutes())}:${z(d.getUTCSeconds())}`
}
console.log(toHMS(d));
0 голосов
/ 25 сентября 2019

Попробуйте moment.js.

Это дает много утилит даты, и форматирование становится супер легким.

...