Javascript 突出显示一天中特定时间的文本

Javascript 突出显示一天中特定时间的文本,javascript,html,Javascript,Html,我需要在特定时间突出显示文本 <style> .highlight { background-color:#FFFF00; } </style> <span class="timer">Hello World</span> <script> var date = new Date(); var minute = date.getMinutes(); var hour = date.getHours(); if(

我需要在特定时间突出显示文本

<style>
.highlight { 
background-color:#FFFF00; 
}
</style>
<span class="timer">Hello World</span>
<script> 
var date = new Date();
var minute = date.getMinutes();
var hour = date.getHours();


if(
        (hour >= 9 && minute >= 59) &&
        (hour <= 10 && minute <= 59)
    ){
           $('timer').addClass('highlight');
    }
</script>

.突出显示{
背景色:#FFFF00;
}
你好,世界
变量日期=新日期();
var minute=date.getMinutes();
var hour=date.getHours();
如果(
(小时>=9分钟>=59)&&

(hour您的
if
语句相当于在没有括号的情况下做相同的事情。因此,您要检查hour是否大于或等于9且小于或等于10(只有当hour为9或10时才是真的),以及分钟是否大于或等于59且小于或等于59(只有当分钟正好是59时才会发生)。因此,如果您的时间是9:59或10:59,您的
if
语句才会返回
true


为什么不直接使用
if(hour==10)

就像A.Damond说你的
if
语句只有在你的时间是9:59或10:59时才是真的

我会将您的
if
声明更改为:

var-date=新日期();
var minute=date.getMinutes();
var hour=date.getHours();
如果((小时==10)){
$('.timer').addClass('highlight');
}
。突出显示{
背景色:#FFFF00;
}


Hello World
它不起作用,因为在jQuery选择器中必须输入一个“点”

$('.timer').addClass('highlight');
当你想选择一个id时,只需输入

$('#timer').addClass('highlight');
正如@Damon所建议的那样,如果只检查小时数就更简单了

(=== 10 || (=== 11 && minute === 00)) // this will include also the 11:00
当然,如果最终用户打开页面(在10点),并且他/她从不更新/重新加载,则背景将始终可见,或者相反,如果他在9点打开页面。 要做好工作并正常工作,您必须在页面上引入时钟,这可以是一个很好的示例:

您需要在特定的x秒后重新加载页面,以了解您指定的时间是什么时候,而不是更改颜色。如果他希望页面实时更新,这是正确的,但这不是核心问题-if语句逻辑有问题。请参见下面的回答。啊,是的,很好的捕获-甚至没有注意到错误的selectorI也需要10:30这样的时间- 10:45@Mezz分钟与时间无关。如果小时为10,则
If
语句始终正确。无论是10:30、10:45还是10:59。