设置Javascript倒计时的初始值

设置Javascript倒计时的初始值,javascript,html,Javascript,Html,我正在尝试制作一个倒计时计时器,从点击按钮开始 我已经让它工作了几分钟和几秒钟,但似乎不知道如何在点击按钮之前获得显示的静态时间 我想知道的是,我如何才能在网页上显示开始按钮上方的时间(在本例中为59分钟59秒),并在按下按钮后启动倒计时功能 <head> <input type="button" onclick="countdown('countdown');" value="Start" /> <script type="text/javascript">

我正在尝试制作一个倒计时计时器,从点击按钮开始

我已经让它工作了几分钟和几秒钟,但似乎不知道如何在点击按钮之前获得显示的静态时间

我想知道的是,我如何才能在网页上显示开始按钮上方的时间(在本例中为59分钟59秒),并在按下按钮后启动倒计时功能

<head>
<input type="button" onclick="countdown('countdown');" value="Start" />
<script type="text/javascript">
var cdtime;
var minutes = 59;
var seconds = 59;

function countdown(element) {
    cdtime = setInterval(function() {
        var timer = document.getElementById(element);
        if(seconds == 0) {
            if(minutes == 0) {
                alert(timer.innerHTML = "countdown's over!");                    
                clearInterval(cdtime);
                return;
            } else {
                minutes--;
                seconds = 60;
            }
        }
        if(minutes > 0) {
            var minutetxt = minutes + (minutes > 1 ? ' minutes' : 'minute');
        } else {
            var minutetxt = '';
        }
        var secondstxt;
        if(seconds > 1) {
            secondstxt = 'seconds'; 
        } else { 
            secondstxt = 'second';
        }

        timer.innerHTML = minutetxt + ' ' + seconds + ' ' + secondstxt;
        seconds--;
    }, 1000);
}
</script> 
</head>
<body>
<div id='countdown'></div>
</body>
</html>

var-cdtime;
var分钟=59;
var秒=59;
函数倒计时(元素){
cdtime=setInterval(函数(){
var timer=document.getElementById(元素);
如果(秒==0){
如果(分钟==0){
警报(timer.innerHTML=“倒计时结束!”);
清除间隔(cdtime);
回来
}否则{
分钟--;
秒=60;
}
}
如果(分钟>0){
var minuteText=minutes+(minutes>1?'minutes':'minute');
}否则{
var minuteText='';
}
var secondstxt;
如果(秒>1){
secondstxt=‘秒’;
}否则{
secondstxt=‘second’;
}
timer.innerHTML=minuteText+''+seconds+''+secondstxt;
秒--;
}, 1000);
}
  • 创建一个div并使用JavaScript使用该div的set-inner-html(我是在定义了分和秒之后完成的)

  • 同时,把你们的元素从标题中带出来,放到主体中

  • 若并没有使用jquery等待窗口完成加载,那个么将脚本放在所有html元素之后
var-cdtime;
var分钟=59;
var秒=59;
document.getElementById(“initialtime”).innerHTML=minutes+“:”+seconds;
函数倒计时(元素){
cdtime=setInterval(函数(){
var timer=document.getElementById(元素);
如果(秒==0){
如果(分钟==0){
警报(timer.innerHTML=“倒计时结束!”);
清除间隔(cdtime);
回来
}否则{
分钟--;
秒=60;
}
}
如果(分钟>0){
var minuteText=minutes+(minutes>1?'minutes':'minute');
}否则{
var minuteText='';
}
var secondstxt;
如果(秒>1)
{
secondstxt=‘秒’;
}
其他的
{ 
secondstxt=‘second’;
}
timer.innerHTML=minuteText+''+seconds+''+secondstxt;
秒--;
},1000);}

为什么不把
59:59
放在div的右边,然后从
60*60-2(59:58)
开始倒计时。在文档的
中还有开始按钮。下面是如何快速获取代码的示例

但是,如果您需要/想要使用JavaScript设置
div
的初始值,这里有一些选项和一些额外的改进;包括一个更精确的计时器功能,也是可重用的

功能启动计时器(持续时间,显示FTN){
var start=Date.now(),diff,obj;
(函数计时器(){
diff=持续时间-((Date.now()-start)/1000)| 0);
obj=分钟秒(差异);
显示FTN(目标分钟,目标秒);
如果(差异>0){
设置超时(定时器,200);
}
}());  
}
功能分钟数秒(持续时间){
返回{
“分钟”:(持续时间/60)| 0,
“秒”:(持续时间%60)| 0
};
}
//我们需要等待页面加载,然后才能选择任何DOM元素
window.onload=函数(){
var duration=5,//设置为60*60-1,持续59分59秒
display1=document.querySelector(“#countdown1”),
display2=document.querySelector(“#countdown2”),
开始时间=分钟秒(持续时间);
//这里是设置初始值的地方
格式1(开始时间.分钟,开始时间.秒);
格式2(开始时间.分钟,开始时间.秒);
//在这里,我们添加了一个事件列表输入,单击按钮时会调用它
document.querySelector(“#startcountdown1”).addEventListener('click',listener);
document.querySelector(“#startcountdown2”).addEventListener('click',listener);
函数侦听器(事件){
//我们不想为同一个按钮开始两次倒计时,
//因此,删除侦听器
event.target.removeEventListener('click',listener);
var formatter=event.target.id='startcountdown1'?format1:format2;
startTimer(持续时间、格式化程序);
}
//这两个函数只是格式化剩余的分钟数和
//秒不同
函数格式1(分、秒){
分钟=分钟+(分钟>1?“分钟”:“分钟”);
秒=秒+(秒>1?“秒”:“秒”);
display1.textContent=分钟+''+秒;
}
函数格式2(分、秒){
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display2.textContent=分钟+':'+秒;
}
};



两个选项-最初将时间放在html中

<div id='countdown'>59 minutes 59 seconds</div>

使用第二个选项,您可以用返回字符串的代码替换文本,或者将字符串生成代码分离到一个单独的函数中进行调用。

//其中eventDate=event start date
输入event start date

EventStartIn=(eventDate:Date)=>{ const today=moment().format()

const actualStartEvent=时刻(eventDate).format();
如果(今天$(document).ready(function() {

  function initialize() {
    document.getElementById("countdown").innerHTML = "59 minutes 59 seconds";

  }

  intialize();
})
    const actualStartEvent = moment(eventDate).format();

    if (today < actualStartEvent) {
        const todayDate = moment(today);
        const actualDate = moment(actualStartEvent);
        const dayDiffrence = actualDate.diff(todayDate, 'days');
        if (dayDiffrence === 0) {
            const timeDiff = moment.utc(moment(actualDate, 'DD/MM/YYYY HH:mm:ss').diff(moment(
                todayDate, 'DD/MM/YYYY HH:mm:ss'))).format('HH:mm');
            const hours = moment.duration(timeDiff).hours();
            const min = moment.duration(timeDiff).minutes();
            return `In ${hours >= 1 ? timeDiff : min} ${hours >= 1 ? `${hours > 1 ? 'hours' : 'hour'}` :
                'minutes'}`;
        }
        return `In ${dayDiffrence} ${dayDiffrence > 1 ? 'days' : 'day'}`;
    }

    if (today > actualStartEvent) {
        const todayDate = moment(today);
        const actualDate = moment(actualStartEvent);
        const dayDiffrence = actualDate.diff(todayDate, 'days');
        if (dayDiffrence === 0) {
            const timeDiff = moment.utc(moment(todayDate, 'DD/MM/YYYY HH:mm:ss').diff(moment(
                actualDate, 'DD/MM/YYYY HH:mm:ss'))).format('HH:mm');
            const hours = moment.duration(timeDiff).hours();
            const min = moment.duration(timeDiff).minutes();
            return `${hours >= 1 ? timeDiff : min} ${hours >= 1 ? `${hours > 1 ? 'hours' : 'hour'}` :
                'minutes'} Ago`;
        }
        return `${Math.abs(dayDiffrence)} ${Math.abs(dayDiffrence) > 1 ? 'days' : 'day'} Ago`;
    }
    return null;
}