2017-10-14 52 views
2

我正在使用谷歌床单JavaScript脚本,我在他们自己的专栏每循环超过15分钟的时间间隔。我试图找到匹配当前小时/分钟的列,这样我就可以突出显示它,但无法获得javascript时间检查的工作。检查是否在2次Javascript中的时间

时间和nextTime是单纯的喜欢8:00或8:15倍,所以,当我将它们转换为日期,我得到这样的:星期六1899年12月30日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

我可以给出一个很长的答案,但你可以在这里做的最好的事情是使用moment.js。在JavaScript sux中的日期对象,瞬间可以很容易地处理 – iagowp

+0

看这里 - https://stackoverflow.com/a/16080662/6149665 – ArtemSky

+1

总是通过使用'var d = new'格式创建日期对象Date(year,month,day ,小时,分钟,秒,毫秒);'如果你有更少的参数,然后使用'var d = new Date(year,month,day,hours,minutes);'因为其他格式可能或不可以在所有浏览器中工作。检查链接以供参考https://www.w3schools.com/jsref/jsref_obj_date.asp –

回答

2

getTime()方法返回从1970年1月1日00:00:00 UTC开始经过的毫秒数。

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

您可以通过将字符串“10/14/2017”作为Date构造函数参数传递给时间戳并在新创建的日期对象上调用getTime方法。

例如 var nextTime = new Date('10/14/2017')。getTime();这将返回自1970年1月至2017年10月14日00:00:00之间经过的毫秒数。

为了使一切融合在一起:

1)获取当前时间戳

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

2)获取时间和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 
} 
相关问题