Javascript 如何编辑时钟代码,使分针以30秒的间隔变化

Javascript 如何编辑时钟代码,使分针以30秒的间隔变化,javascript,html,css,clock,Javascript,Html,Css,Clock,我现在有一个用javascript、css和html创建的时钟。我正在尝试编辑javascript,这样,如果我将.5或+30添加到html的时区偏移量中,分针也会调整将30分钟添加到当前位置。我还希望在这个+30分钟的间隔发生时更新时针,以便当时针达到60时,时针也将调整到下一个小时。谢谢 类时钟{ 建造师(id){ this.timezone=parseInt(document.getElementById(id).dataset.timezone); if(this.isDST(new

我现在有一个用javascript、css和html创建的时钟。我正在尝试编辑javascript,这样,如果我将.5或+30添加到html的时区偏移量中,分针也会调整将30分钟添加到当前位置。我还希望在这个+30分钟的间隔发生时更新时针,以便当时针达到60时,时针也将调整到下一个小时。谢谢

类时钟{
建造师(id){
this.timezone=parseInt(document.getElementById(id).dataset.timezone);
if(this.isDST(new Date())){
这个时区+=1;
}
this.handSeconds=document.querySelector(`${id}.hand.seconds`);
this.handMinutes=document.querySelector(`${id}.hand.minutes`);
this.handHours=document.querySelector(`${id}.hand.hours`);
这个。getTime();
这个循环();
}
isDST(现在){
const jan=新日期(现在是.getFullYear(),0,1);
const jul=新日期(现在是.getFullYear(),6,1);
const dst=Math.max(一月getTimezoneOffset(),七月getTimezoneOffset());
立即返回。getTimezoneOffset()
html{
身高:100%;
显示器:flex;
证明内容:中心;
对齐项目:居中;
背景色:#673AB7;
溢出:隐藏;
}
.内容{
显示器:flex;
对齐项目:居中;
}
.content.widget{
填充:24px;
利润率:24px;
}
.content.widget.clock{
位置:相对位置;
宽度:456px;
高度:456px;
边界半径:100%;
框大小:边框框;
背景色:#5A2EA5;
}
.content.widget.clock#冲绳,
.content.widget.clock#amalfi{
宽度:240px;
高度:240px;
}
.content.widget.clock#冲绳:之前,
.content.widget.clock#amalfi:之前{
边框宽度:3倍;
}
.content.widget.clock#okinawa.hand,
.content.widget.clock#amalfi.hand{
高度:3倍;
顶部:118.5px;
变换原点:右1.5px;
}
.content.widget.clock#okinawa.hand.seconds,
.content.widget.clock#amalfi.hand.seconds{
显示:是;
}
.content.widget.clock:before{
内容:“;
宽度:100%;
身高:100%;
位置:绝对位置;
排名:0;
左:0;
边框:6px实心#FFF;
边界半径:100%;
框大小:边框框;
}
.content.widget.clock.shadow{
内容:“;
宽度:100%;
高度:500px;
位置:绝对位置;
最高:50%;
左:0;
背景:线性梯度(至底部,rgba(0,0,0,0.65)0%,rgba(0,0,0,0)100%);
变换:旋转(-45度);
变换原点:50%0%;
不透明度:0.3;
z指数:-1;
}
.content.widget.clock.hand{
高度:6px;
位置:绝对位置;
顶部:225px;
背景色:#FFF;
边界半径:100%0%0%100%;
变换原点:右3px;
过渡:所有0.05秒三次贝塞尔(0,0,0.52,2.51)0秒;
}
.content.widget.clock.hand.seconds{
宽度:45%;
左:5%;
不透明度:0.25;
}
.content.widget.clock.hand.minutes{
宽度:35%;
左:15%;
不透明度:0.5;
}
.content.widget.clock.hand.hours{
宽度:25%;
左:25%;
不透明度:0.75;
}
.content.widget.clock.hand cap{
宽度:5%;
身高:5%;
位置:绝对位置;
最高:47.5%;
左:47.5%;
背景色:#FFF;
边界半径:100%;
}
.content.widget标签{
显示:块;
宽度:100%;
位置:绝对位置;
顶部:-24px;
左:0;
字体系列:无衬线;
字号:200;
字体大小:12px;
文本转换:大写;
文本对齐:居中;
字母间距:4px;
颜色:#FFF;
不透明度:0.5;
}

冲绳
西雅图
阿马尔菲
你是说像这样

  • 如果有,以小时和分钟为单位获取时间

    this.timezone = document.getElementById(id).dataset.timezone;
    let [hh,mm] = this.timezone.slice(1).split("."); // remove the +/- before splitting
    this.timezoneMM = 60*hh +(mm ? parseInt(mm) : 0)
    
    this.timezoneMM *= this.timezone.indexOf("-")===0 ? -1:-1;
    
  • 将分钟添加到now对象

    now.setMinutes(now.getMinutes()+this.timezoneMM)
    
    类时钟{
    建造师(id){
    this.timezone=document.getElementById(id).dataset.timezone;
    让[hh,mm]=this.timezone.slice(1).split(“.”;//在分割之前删除+/-
    this.timezoneMM=60*hh+(mm?parseInt(mm):0)
    this.timezoneMM*=this.timezone.indexOf(“-”)===0?-1:-1;
    if(this.isDST(new Date())){
    这个时区+=1;
    }
    this.handSeconds=document.querySelector(`${id}.hand.seconds`);
    this.handMinutes=document.querySelector(`${id}.hand.minutes`);
    this.handHours=document.querySelector(`${id}.hand.hours`);
    这个。getTime();
    这个循环();
    }
    isDST(现在){
    const jan=新日期(现在是.getFullYear(),0,1);
    const jul=新日期(现在是.getFullYear(),6,1);
    const dst=Math.max(一月getTimezoneOffset(),七月getTimezoneOffset());
    立即返回。getTimezoneOffset()