2016-03-30 26 views
1

幸运的是.js文件和.vbs文件启动时没有错误。但是,由于一些奇怪的原因,执行总是认为我不在两次之间。请记住,我现在的时间是22点,所以阻止我的是什么? 这里是代码:Javascript时间问题不认为我介于startTime和endTime之间

var d = new Date(); 
var n = d.getHours(); 
var timeEnd = d.setHours(23); 
var timeStart = d.setHours(0); 
var oShell = new ActiveXObject("Shell.Application"); 
var commandtoRun = "C:\\Users\\100046908\\Desktop\\Letsgo.vbs"; 

if(n < timeEnd && n > timeStart){ 
var r = confirm("Press a button"); 
if (r = true) { 
x = "You pressed OK!"; 
_system.shutDown(); 
} else { 
x = "You pressed Cancel!"; 
die; 
} 
} 
else { 
oShell.ShellExecute(commandtoRun,"","","open","1"); 
} 

在此先感谢。

+0

从*调用getHours返回*是日期(从0到23含)当前小时,还有从*调用setHours返回*是因为时代在毫秒的时间价值,这是一个非常非常大的数字。所以* n *将总是小于* timeEnd *和* timeStart *。尝试'n = + d',以表示当前时间值。 – RobG

回答

0

nd.getHours()的返回值。这是一个自然数,其中小于24。另一方面,你有这样的初始化:

var timeEnd = d.setHours(23); 
var timeStart = d.setHours(0); 

因为d.setHours返回日期的数字reprezentation,值一样1459370582692,n永远不会timeStart之间和timeEnd。你可能会想这样做,而不是:

var timeEnd = 23; 
var timeStart = 0; 
+0

或'n = d.getTime()'。 ;-) – RobG

相关问题