2016-03-29 61 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,因为没有返回值 –