检查Javascript中是否有2次之间的时间

时间:2017-10-14 16:17:22

标签: javascript

我正在使用谷歌工作表javascript脚本,我在他们自己的专栏中循环超过15分钟。我试图找到与当前小时/分钟匹配的列,以便我可以突出显示它,但无法让javascript时间检查工作。

时间和次要时间只是8:00或8:15的时间,所以当我将它们转换为日期时,我得到的结果如下:Sat Dec 30 1899 08:00:00 GMT-0600(CST)

getTime()是考虑日期部分还是仅考虑时间部分?如果我有一个日期字符串,如" 10/14/2017"我怎么能把2一起带到日期对象?

var now = new Date().getTime();

  for(i in data[0]){
    var time = new Date(data[0][i]);
    var nextTime = new Date(data[0][Number(i) + 1]);

    var diff1 = time.getTime() - now;
    var diff2 = nextTime.getTime() - now;

    if(now >= time.getTime() && now < nextTime.getTime()){
      Logger.log(time);
    }
  }

1 个答案:

答案 0 :(得分:3)

getTime()方法返回自1970年1月1日00:00:00 UTC以来经过的毫秒数。

此号码称为时间戳。例如1508001790301.此数字代表总毫秒数(因此它同时考虑日期部分和时间部分)

您可以转换字符串&#34; 10/14/2017&#34;通过将其作为Date构造函数参数传递并在新创建的日期对象上调用getTime方法来获取时间戳。

e.g。 var nextTime = new Date(&#39; 10/14/2017&#39;)。getTime();这将返回自1970年1月至2017年10月14日00:00:00之间已经过的毫秒数。

把所有东西放在一起:

1)获取当前时间戳

var now = new Date().getTime(); // 1508001790301

2)获取time和nextTime的时间戳

var time = new Date('10/14/2017').getTime(); 
var nextTime = new Date('10/15/2017').getTime();

3)只需比较示例

中的值即可
if(time <= now && now <= nextTime) {
      // Highlight the column
}