2016-03-29 59 views
0

時輸入錯誤是
線:3
字符:3「預期的對象」,試圖讓JavaScript的

var d = new Date(); 
var n = d.getHours(); 
var timeEnd = setHours(17); 
var timeStart = setHours(15); 

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 { 
    window.alert("This isn't the right time!") 
} 

如果有人能幫助我解決這個問題和其他錯誤,你看,那會很有幫助。

+0

第3行,char 3在'var'中是'r'。我懷疑那裏有錯誤。請閱讀[問]。 –

+0

你有一個叫做'setHours'的全局函數,或者你是否打算在'd'上調用它? – Biffen

回答

2

您需要使用變量d來訪問日期對象。

var timeEnd = d.setHours(17); 
//   ^^^ 
var timeStart = d.setHours(15); 
//    ^^^ 

我建議這條線

var n = d.getHours(); 

改變

var n = Date.now(); 

,因爲這符合其他時間值進行比較。 Date#now

Date.now()方法返回自1970年1月1日00:00:00 UTC經過的毫秒數。

Date#setHours對應,並使其可比:

setHours()方法按照本地時間用於設置指定日期的時間,並且由於1返回的毫秒數1970年1月00:00: 00 UTC直到由更新的Date實例表示的時間。

+0

該建議沒有多大意義,'timeEnd'和'timeStart'被設置爲undefined,並且您將同一個對象設置爲兩個不同的小時。 –

+1

@JuanMendes'setHours'返回一個數字(至少[根據MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours))。 – Biffen

+0

@Biffen是的,我的壞,它被埋在那裏。我剔除它,並假定它返回undefined,因爲沒有返回值 –