12小时Javascript时钟显示24小时,错误的AM/PM

12小时Javascript时钟显示24小时,错误的AM/PM,javascript,jquery,html,html5-canvas,Javascript,Jquery,Html,Html5 Canvas,我正在使用js渲染一个12小时的数字时钟,它会不断更新。然而,我在网上找到的代码给我留下了24小时时钟和错误的am/pm输出。现在显示的是上午13:33。我在这里和那里尝试了其他代码片段,一些jquery示例,但是没有任何效果,很多css已经进入了这一部分。如何将其转换为正常工作的12小时时钟?谢谢 $document.readyfunction{ 设置间隔函数{ //创建一个newDate对象,并提取访问者当前时间的小时数 var小时=新日期。getHours; //将前导零添加到小时值 $

我正在使用js渲染一个12小时的数字时钟,它会不断更新。然而,我在网上找到的代码给我留下了24小时时钟和错误的am/pm输出。现在显示的是上午13:33。我在这里和那里尝试了其他代码片段,一些jquery示例,但是没有任何效果,很多css已经进入了这一部分。如何将其转换为正常工作的12小时时钟?谢谢

$document.readyfunction{ 设置间隔函数{ //创建一个newDate对象,并提取访问者当前时间的小时数 var小时=新日期。getHours; //将前导零添加到小时值 $.hours.htmlhours<10?0:+hours; }, 1000; }; 设置间隔函数{ //创建一个newDate对象,并提取访问者当前时间的分钟数 var minutes=new Date.getMinutes; //将前导零添加到分钟值 $.min.htmlminutes<10?0:+分钟; }, 1000; 设置间隔函数{ var time=新日期。getHours; 风险值时间=时间+24-2%24; var mid='am'; 如果时间=0{//00时,我们需要显示上午12点 小时=12; }否则,如果时间>12{ 时间=时间%12; mid=‘pm’; } $.ap.htmlmid; }; 保险商实验室{ 列表样式:无; } 李{ 显示:内联块; } :
这是一个很有用的函数。它以数字的形式获取军事小时和分钟,并返回一个由12小时时间组成的数组,包括小时、分钟和am/pm

函数Get12HourtimeComponents小时,分钟{ 分钟=分钟<10?0:+分钟; 如果小时数%12==0,则返回[12,分钟,小时数==12?pm:am]; 返回[小时%12,分钟,小时<12?上午:下午]; }
console.logget12HourTimeComponents15、23 这是一个很有用的函数。它以数字的形式获取军事小时和分钟,并返回一个由12小时时间组成的数组,包括小时、分钟和am/pm

函数Get12HourtimeComponents小时,分钟{ 分钟=分钟<10?0:+分钟; 如果小时数%12==0,则返回[12,分钟,小时数==12?pm:am]; 返回[小时%12,分钟,小时<12?上午:下午]; }
console.logget12HourTimeComponents15、23 第一个问题是这条线:

var hours = new Date().getHours();
它需要当前的小时数,从0到23。例如:

var小时=新日期'2020-01-01 16:00:00'。getHours;
控制台。对数小时 第一个问题是这条线:

var hours = new Date().getHours();
它需要当前的小时数,从0到23。例如:

var小时=新日期'2020-01-01 16:00:00'。getHours;
控制台。对数小时;时间+24-2,-2的作用是什么?我在网上得到了这个例子,我实际上不知道。我对JS非常陌生。时间+24-2,-2是用来干什么的?我在网上得到了这个例子,实际上我不知道。我对JS非常陌生。感谢您的修复,并详细介绍了它。在这个答案中,am/pm永远不会切换,因为间隔没有ms用于第二个参数。@AaronPlocharczyk如果没有提供,它将使用默认延迟。但是很好的发现,它的延迟应该大于4ms。从来没有想过setInterval的默认延迟,但你是对的。无论如何,这么短的间隔就是疯狂haha@AaronPlocharczyk没错,我修改了答案指出了这一点,因为你是对的-无需每秒更改am/pm 250次:p谢谢你的修复,并详细地指导我。在这个答案中,am/pm永远不会切换,因为间隔没有用于第二个参数的毫秒。@AaronPlocharczyk如果没有提供,它将使用默认延迟。但是很好的发现,它的延迟应该大于4ms。从来没有想过setInterval的默认延迟,但你是对的。无论如何,这么短的间隔就是疯狂haha@AaronPlocharczyk是的,我修改了答案指出了这一点,因为你是对的-不需要每秒更改250次am/pm:P