setHours() javascript возвращает другой формат, чем ожидалось
У меня такая ситуация, когда мне нужно использовать JavaScript
установленное время()
Так что я могу изменить время в соответствии с количеством секунд, которые у меня есть. Например, я хочу знать, во сколько это было 1400 секунд назад.
Я прихожу к выводу, что моим самым чистым и лучшим решением было бы использование комбинации
getDate() и setHours () - setMinutes () - setSeconds () как в примере по этой ссылке: https://codepen.io/Jaquelline/pen/rPgOKj?editors=1011
function myFunction() {
var myTime = new Array();
for(i=0; i <3599; i++){
var d = new Date();
var currentI = 3599-i;
myTime[i] = new Array();
myTime[i] = {
x: i,
y: d.setHours(d.getHours()-1) + ':' + d.setMinutes(d.getMinutes()) + ':'+ d.setSeconds(d.getSeconds()+currentI)
};
}
var s = JSON.stringify(myTime);
document.getElementById("cTimeArray").innerHTML =s;
var t = new Date();
t.setHours(t.getHours()-1);
t.setHours(t.getMinutes());
t.setHours(t.getSeconds()+1200);
document.getElementById("cTime").innerHTML =t;
}
Переменная s возвращает что-то вроде этого:
[{"x": 0, "y": "1550821508351: 1550821508351: 1550825107351"}, {"x": 1, "y": "1550821508351: 1550821508351: 1550825106351"},
Пока т возвращается:
Вс 14 апреля 2019 08:45:08 GMT+0200 (Mitteleuropäische Sommerzeit)
2 ответа
Вы не показываете правильное значение.
Задавать d
до и использовать получатели, чтобы показать значение.
var myTime = new Array();
for (i = 0; i < 3599; i++) {
var d = new Date();
var currentI = 3599 - i;
myTime[i] = {};
d.setHours(d.getHours() - 1);
d.setMinutes(d.getMinutes());
d.setSeconds(d.getSeconds() + currentI);
myTime[i] = {
x: i,
y: d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds()
};
}
var s = JSON.stringify(myTime);
console.log(s);
Если вы просто хотите узнать время 1400 секунд назад, то почему бы просто не вычесть 1400 секунд из текущего времени?
var past = new Date((new Date().getTime()) - 1400 * 1000);
getTime()
возвращает метку времени, представляющую дату / время в миллисекундах, отсюда умножение 1400 на 1000.