setHours()JavaScript返回的格式与预期不同

时间:2019-02-22 08:58:16

标签: javascript milliseconds gettime

在这种情况下,我需要使用JavaScript

  

setTime()

以便我可以根据我拥有的秒数来修改时间。例如,我想知道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:155021508351:1550825106351”},

t 返回时:

  

2019年4月14日星期日格林尼治标准时间+0200(MitteleuropäischeSommerzeit)

2 个答案:

答案 0 :(得分:1)

如果您只是想知道1400秒之前的时间,那为什么不从当前时间中减去1400秒呢?

  this.router.navigateByUrl('/customer/customer-details');

var past = new Date((new Date().getTime()) - 1400 * 1000); 返回表示日期/时间的时间戳(以毫秒为单位),因此将1400乘以1000。

答案 1 :(得分:0)

您输入的值不正确。

先设置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);