我试图在特定时间之间调用函数..在6:00:00 AM到8:00:00 PM之间应执行myFunction()..否则应执行otherFunction()。
if (new Date().getHours() > "6" && new Date().getHours() < "20") {
myFunction();
} else {
otherFunction();
}
以上有时会有效...但我觉得它不准确......我也在使用moment.js和:
if (moment().format("h:mm:ss A") > "6:00:00 AM" && moment().format("h:mm:ss A") < "8:00:00 PM") {
我想我用以下方法解决了这个问题:
var now = moment();
var amStart = moment('9:00 AM', 'h:mm A');
var amFinish = moment('10:00 PM', 'h:mm A');
if (now.isAfter(amStart) && now.isBefore(amFinish)) {
console.log('Success Function');
} else {
console.log('Failure Function')
}
答案 0 :(得分:1)
getHours()
返回一个数字,而不是字符串,因此您应该与数字进行比较。
您需要使用>=
,而不是>
,因为当它6:10
时,getHours()
将返回6
,{{1不是真的。
6 > 6
答案 1 :(得分:0)
您可以使用时刻js的isAfter()和isBefore()方法。 doc
var date = new Date();
if (moment(date).isAfter("6:00:00 AM") && moment(date).isBefore("8:00:00 PM") ) {
successfuntion();
} else {
failerfunction();
}
这是一个小提琴
答案 2 :(得分:0)
这对我有用。
var now = moment();
var amStart = moment('9:00 AM', 'h:mm A');
var amFinish = moment('10:00 PM', 'h:mm A');
if (now.isAfter(amStart) && now.isBefore(amFinish)) {
console.log('Success Function');
} else {
console.log('Failure Function')
}