2016-03-30 23 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

相關問題