时钟和日期javascript

时钟和日期javascript,javascript,Javascript,我正在创建一个JS时钟/日期。我以前有时间完美地工作,然后我决定在我的时钟(日期)上增加更多。现在我不明白为什么它不起作用。如果有人能给我提示或建议如何修复它,我将不胜感激 function timedate() { var currentTime = new Date(); var hours = currentTime.getHours(); var minutes = currentTime.getMinutes(); var dn="PM"

我正在创建一个JS时钟/日期。我以前有时间完美地工作,然后我决定在我的时钟(日期)上增加更多。现在我不明白为什么它不起作用。如果有人能给我提示或建议如何修复它,我将不胜感激

function timedate()
    {
    var currentTime = new Date();
    var hours = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    var dn="PM"
    var d = currentTime.getDate(); <--
    var day = (d < 10) ? '0' + d : d;
    var m = currentTime.getMonth() + 1; <--
    var month = (m < 10) ? '0' + m : m;
    var yy = currentTime.getYear(); <--
    var year = (yy < 1000) ? yy + 1900 : yy;
    if (hours<12)
 {
    dn="AM"
 }
    if (hours>12)
 {
    hours=hours-12
 }
    if (hours==0)
 {
    hours=12
 }
    if (minutes<=9)
 {
    minutes="0"+minutes 
 }
 var clocklocation = document.getElementById('timedate');
 clocklocation.innerHTML = "" +hours+":"+minutes+dn+""+day + "/" + month + "/" + year;
 setTimeout("timedate()", 1000); 
    }
timedate();
函数timedate()
{
var currentTime=新日期();
var hours=currentTime.getHours();
var minutes=currentTime.getMinutes();
var dn=“PM”

var d=currentTime.getDate();您的代码可以正常工作,它只是不可见,因为您没有显示秒数

也改变

setTimeout("timedate()", 1000); 

因为这是不推荐的

并移除(“0”+num).slice(-2); 常数时间=()=>{ const currentTime=新日期(); 让hours=currentTime.getHours(); const minutes=pad(currentTime.getMinutes()); const seconds=pad(currentTime.getSeconds()); const d=currentTime.getDate(); 施工日=pad(d); const month=pad(currentTime.getMonth()+1); const yy=currentTime.getFullYear(); 让dn=“PM” 如果(小时=12)小时-=12; 如果(小时=0)小时=12; 小时=pad(小时); document.getElementById('timedate')。innerHTML=“”+ 小时数+“:”+ 分钟+“:”+ 秒+dn+“”+ 日+“/”+月+“/”+yy; } addEventListener(“加载”,函数(){ 设置间隔(时间日期,1000); });

如果使用
setTimeout(timedate,1000)
而不是当前的魔术字符串版本1设置超时



1我还冒昧地在代码中添加了秒数,以使时钟明显更新。当然,您还需要删除
您所说的“它不工作”是什么意思?它抛出了一个错误吗?我希望这些位
我也是:)但是我先做了是的-在我写我的之前,我看不到你的帖子;)事实上神奇字符串版本确实有效,不推荐,但有效
setTimeout(timedate, 1000); 
timedate();
setInterval(timedate,1000)