【问题标题】:Getting time difference from an array从数组中获取时间差
【发布时间】:2019-08-27 04:56:30
【问题描述】:

我有一个这样的数组 -

[ 'State is:1Time:2019-2-3 11:45:02',  
  'State is:1Time:2019-2-3 12:45:05',  
  'State is:1Time:2019-3-4 11:45:00',  
  'State is:2Time:2019-3-5 11:45:08',  
  'State is:2Time:2019-4-5 11:45:10',  
  'State is:2Time:2019-4-5 11:45:12', ]

使用 Javascript,我如何按状态检查出现次数并减去它们的时间。这意味着例如 State 1 出现 3 次,我想要第一次出现 State 1 与时间 2019-2-3 11:45:02 之间的时间差 第三次出现State 1 与时间2019-3-4 11:45:00State 2 也是如此。

【问题讨论】:

  • 欢迎来到 Stackoverflow。请参考stackoverflow.com/help/how-to-ask。并添加您所面临问题的更多详细信息。分享您迄今为止尝试过的相关代码sn-ps。

标签: javascript node.js typescript


【解决方案1】:

你可以这样做

function calculateTime() {
    var array = [ 'State is:1Time:2019-2-3 11:45:02',  
  'State is:1Time:2019-2-3 12:45:05',  
  'State is:1Time:2019-3-4 11:45:00',  
  'State is:2Time:2019-3-5 11:45:08',  
  'State is:2Time:2019-4-5 11:45:10',  
  'State is:2Time:2019-4-5 11:45:12', ];
  var previousState=0;
  var previousTime = 0;
  for(var i=0;i<array.length;i++)
  {
      var str = array[i];
  str = str.split('Time');
 var str1 = str[0].split(":");
 var str2 = str[1].split(/:{0-1}/);
 var currentState = str1[1];

 var date = new Date(str2[0].substring(1,str2[0].length));
 var currentTime = date.getTime();
 if((previousState != currentState && (i >0 )|| i ==array.length-1)  )
 {
     console.log(currentTime - previousTime);
 }
 previousState = currentState;
 previousTime = currentTime;
 }

}

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多