2016-03-30 11 views
1

.jsファイルと.vbsファイルがエラーなしで起動します。しかし、いくつかの奇妙な理由で、実行は常に私が2つの時間の間ではないと信じて終了します。現在の時間は私がいる場所で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

nは、d.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