2016-03-30 17 views
1

.js dosyası ve .vbs dosyası neyse hata olmadan başlattı. Ancak, garip bir nedenden ötürü, infaz, her zaman iki kez arasında olmadığımı düşünerek sona erer. Bulunduğum saatte şu andaki saat 22'yi hatırlatıyor, bu yüzden beni ne engelliyor? peşinJavascript Zaman sorunu bir startTime ve bir endTime arasında olduğunu düşünmüyor.

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"); 
} 

Teşekkür: İşte kodudur.

+0

, * setHours oradan dönmek * Dönemden beri milisaniye cinsinden bir zaman değeridir , çok, çok daha büyük bir sayı. Yani * n * her zaman hem * timeEnd * hem de * timeStart * değerinden daha az olacaktır. 'N = + d' değerini deneyin, böylece geçerli zaman değerini temsil eder. – RobG

cevap

0

n, d.getHours() dönüş değeridir.

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

tarih d.setHours döner sayısal reprezentation beri, bir değer 1459370582692 gibi ntimeStart arasında asla: Bu Öte yandan daha küçük 24'ten doğal sayıdır, bu başlatma var ve timeEnd. Bunun yerine bunu yapmak istedim olabilir:

* getHours dönüş * (0 23 dahil etmek) tarihi için geçerli saattir
var timeEnd = 23; 
var timeStart = 0; 
+0

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

İlgili konular