我正在尝试更改我网站上的时钟颜色.我的代码不起作用,我想知道我犯了什么错误

I'm trying to change the color of a clock on my website. My code is not working and I'm wondering what mistake I made

本文关键字:不起作用 代码 我的 想知道 错误 什么 颜色 时钟 网站      更新时间:2023-09-26

此代码应显示时间,如果在中部时区晚上 8:00 之后,则以红色显示时间,如果在上午 7:30 之后,则以绿色显示时间。 不幸的是,这是我第一次使用Javascript,我显然犯了一些错误。 不显示任何内容。 谁能帮我找到问题?

<script type="text/javascript">
var centralDate = getOffsetDate(360);
function getOffsetDate(offsetInMintues) {
  var d = new Date();
  d.setMinutes(d.getMinutes() + d.getTimezoneOffset() - offsetInMintues);
  return d;
}
function GetClock(){
d = getOffsetDate();
nhour  = d.getHours();
nmin   = d.getMinutes();
     if(nhour ==  0) {ap = " AM";nhour = 12;} 
else if(nhour <= 11) {ap = " AM";} 
else if(nhour == 12) {ap = " PM";} 
else if(nhour >= 13) {ap = " PM";nhour -= 12;}
if(nmin <= 9) {nmin = "0" +nmin;}
var h = centralDate.getHours();
var m = centralDate.getMinutes(); 
if (h >= 20 || 
  h <7 ||
  (h == 7 && m <= 30)) {
  c="#FF0000"
}
else {c=#00FF00"}
document.getElementById('clockbox').innerHTML=""+nhour+":"+nmin+ap+"";
setTimeout("GetClock()", 1000);
}
<FONT COLOR=c>;
window.onload=GetClock;
</FONT>
</script>
<div id="clockbox"></div>

你不会在 GetClock 内部将任何东西传递到 getOffsetDate() 中,这会加速所有数值计算。

(加上我在评论中提到的东西。

看小提琴

(为了我的理智,setTimeout被注释掉了。

实际上也不会在任何地方改变颜色;你只是设置一个值,然后再也不做任何其他事情。

另外,您的<script>标签中有 HTML,这不起作用。而是更改<font>标签属性...尽管现在我们知道CSS现在没有人真正使用字体标签了,所以为了你自己,你可能想这样做。

(我不确定你想从GetClock打电话给getOffsetDate(),但我不清楚你想做什么,所以我不知道。在小提琴中,我保持原样并通过 0 分钟的偏移。

你应该写最后五行,比如:

$("<div id='clockbox'></div>").css("color", "red").appendTo("body");

附言如果你不熟悉这段代码,让我告诉你这是jQuery,一个流行的JavaScript库。您可以从 jQuery.com 下载它,并将其包含在您的页面中,就像任何其他JavaScript文件一样。