函数逻辑不';javascript时钟应用程序没有意义

函数逻辑不';javascript时钟应用程序没有意义,javascript,Javascript,函数显示时间(){ 让日期=新日期(); 让hours=date.getHours();//0-23 让分钟数=日期。getMinutes();//0-59 设秒数=日期。getSeconds();//0-59 设formatHours=convertFormat(小时); 小时=检查时间(小时); 小时=加零(小时); 分钟=加零(分钟); 秒=加零(秒); document.getElementById('clock').innerHTML=hours+':'+minutes+':'+sec

函数显示时间(){
让日期=新日期();
让hours=date.getHours();//0-23
让分钟数=日期。getMinutes();//0-59
设秒数=日期。getSeconds();//0-59
设formatHours=convertFormat(小时);
小时=检查时间(小时);
小时=加零(小时);
分钟=加零(分钟);
秒=加零(秒);
document.getElementById('clock').innerHTML=hours+':'+minutes+':'+seconds+formatHours;
}
函数格式(时间){
let format='AM';
如果(时间>=12){
格式='PM';
}
返回格式;
}
函数检查时间(time){
如果(时间>12){
时间=时间-12;
}
如果(时间==0){
时间=12;
}
返回时间;
}
函数addZero(时间){
如果(时间<10){
time=“0”+时间;
}
返回时间;
}
showTime();
设置间隔(显示时间,1000)
正文{
最小高度:100vh;
显示器:flex;
对齐项目:居中;
证明内容:中心;
背景色:黑色;
}
#钟{
字体系列:“Orbitron”;
字体大小:5rem;
颜色:柠檬黄;
}

克罗克

事实上,这是有道理的。该函数以12小时格式显示时间,因此即使是在晚上8:33,也将显示为晚上8:33。如果希望将8:33仅显示为AM,将20:33显示为PM,请将函数更改为使用24小时格式,原因是当您看到时间为8:33 PM时,它仍然显示PM而不是AM,因为date.getHours()函数将返回“系统时钟”,而不是函数显示的时钟值。这意味着,当您错误地认为convertFormat函数的输入变量是“8”时,它实际上是系统时钟中的20。

我得到了正确的时间。我不知道现在哪个时间在你的时区。。。如果是晚上8点,它应该显示晚上8点33分;如果是早上8点33分,它应该显示上午8点33分。在将其更改为12小时格式之前,您已经执行了
convertFormat
,因此逻辑是正确的。这并没有回答以下问题:为什么convertFormat函数在8<12时返回PM?如果您检查代码,则AM PM是在12减去12之前确定的小时数。因此,如果是PM,则确定时间格式时,小时的值为20。12以后减去