Javascript 如何使这个倒计时计时器倒计时到一个特定的日期,而不仅仅是从一个时间?
我正在尝试更改这个JavaScript,使它倒计时到一个特定的日期——2019年12月16日,而不是仅仅说15天,我已经尝试了一些事情,但还是卡住了Javascript 如何使这个倒计时计时器倒计时到一个特定的日期,而不仅仅是从一个时间?,javascript,countdowntimer,Javascript,Countdowntimer,我正在尝试更改这个JavaScript,使它倒计时到一个特定的日期——2019年12月16日,而不是仅仅说15天,我已经尝试了一些事情,但还是卡住了 function getTimeRemaining(endtime) { var t = Date.parse(endtime) - Date.parse(new Date()); var seconds = Math.floor((t / 1000) % 60); var minut
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.days');
var hoursSpan = clock.querySelector('.hours');
var minutesSpan = clock.querySelector('.minutes');
var secondsSpan = clock.querySelector('.seconds');
function updateClock() {
var t = getTimeRemaining(endtime);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
var deadline = new Date(Date.parse(new Date()) + 15 * 24 * 60 * 60 * 1000);
initializeClock('clockdiv', deadline);
函数getTimeRemaining(endtime){
var t=Date.parse(endtime)-Date.parse(new Date());
var秒=数学地板((t/1000)%60);
var分钟=数学地板((t/1000/60)%60);
可变小时数=数学楼层((t/(1000*60*60))%24);
风险天数=数学下限(t/(1000*60*60*24));
返回{
“总计”:t,
“天”:天,
“小时”:小时,
“分钟”:分钟,
“秒”:秒
};
}
函数初始化锁(id,endtime){
var clock=document.getElementById(id);
var daysSpan=clock.querySelector('.days');
var hoursSpan=clock.querySelector('.hours');
var minutesSpan=clock.querySelector('.minutes');
var secondsSpan=clock.querySelector('.seconds');
函数updatelock(){
var t=GetTime剩余时间(endtime);
daysSpan.innerHTML=t.days;
hoursSpan.innerHTML=('0'+t.hours).slice(-2);
minuteSpan.innerHTML=('0'+t.minutes).slice(-2);
secondsSpan.innerHTML=('0'+t.seconds).slice(-2);
if(t.total稍微修改了代码以获得一个工作倒计时。尽管如此,我在修改代码之前并没有实际测试代码
我的代码没有考虑闰日或夏令时。因此,由于几周后的时间变化,现在它需要一个小时的休息时间。但是,我的算法会自我更正。因此,在时间变化后它将是正确的
function getTimeRemaining(endDate) {
var now = new Date();
var timeSpanInMilliseconds = Date.parse(endDate) - now;
var millisecondsInSecond = 1000;
var millisecondsInMinutes = millisecondsInSecond * 60;
var millisecondsInHours = millisecondsInMinutes * 60;
var millisecondsInDays = millisecondsInHours * 24;
var days = Math.floor(timeSpanInMilliseconds / millisecondsInDays);
var remainingMilliseconds = timeSpanInMilliseconds - days * millisecondsInDays;
var hours = Math.floor(remainingMilliseconds / millisecondsInHours);
remainingMilliseconds = remainingMilliseconds - hours * millisecondsInHours;
var minutes = Math.floor(remainingMilliseconds / millisecondsInMinutes);
remainingMilliseconds = remainingMilliseconds - minutes * millisecondsInMinutes;
var seconds = Math.floor(remainingMilliseconds / millisecondsInSecond);
return {
'total': millisecondsInSecond,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endDate) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.days');
var hoursSpan = clock.querySelector('.hours');
var minutesSpan = clock.querySelector('.minutes');
var secondsSpan = clock.querySelector('.seconds');
var timeInterval = setInterval(updateClock, 1000);
updateClock();
function updateClock() {
var t = getTimeRemaining(endDate);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = t.hours < 10 ? '0' + t.hours : t.hours;
minutesSpan.innerHTML = t.minutes < 10 ? '0' + t.minutes : t.minutes;
secondsSpan.innerHTML = t.seconds < 10 ? '0' + t.seconds : t.seconds;
if (t.total <= 0) {
clearInterval(timeInterval);
}
}
}
var endDate = new Date(2019, 11, 16);
initializeClock('clockdiv', endDate);
函数getTimeRemaining(endDate){
var now=新日期();
var timespaninmillizes=Date.parse(endDate)-now;
var毫秒s=1000;
var毫秒分钟=毫秒每秒*60;
var毫秒小时=毫秒分钟*60;
var毫秒数天=毫秒数小时*24;
变量天数=数学下限(时间间隔毫秒/毫秒天数);
var remainingmillizes=timespaninmillizes-days*毫秒sindays;
var小时=数学下限(剩余毫秒/毫秒小时);
剩余毫秒=剩余毫秒-小时*毫秒小时;
var minutes=数学下限(剩余毫秒/毫秒分钟);
剩余毫秒=剩余毫秒-分钟*毫秒分钟;
var秒=数学地板(剩余毫秒/毫秒每秒);
返回{
“总计”:毫秒每秒,
“天”:天,
“小时”:小时,
“分钟”:分钟,
“秒”:秒
};
}
函数初始化锁(id,endDate){
var clock=document.getElementById(id);
var daysSpan=clock.querySelector('.days');
var hoursSpan=clock.querySelector('.hours');
var minutesSpan=clock.querySelector('.minutes');
var secondsSpan=clock.querySelector('.seconds');
var timeInterval=setInterval(updatelock,1000);
updatelock();
函数updatelock(){
var t=GetTimeResisting(endDate);
daysSpan.innerHTML=t.days;
hoursSpan.innerHTML=t.hours<10?'0'+t.hours:t.hours;
minutesSpan.innerHTML=t.minutes<10?'0'+t.minutes:t.minutes;
secondsSpan.innerHTML=t.seconds<10?'0'+t.seconds:t.seconds;
如果(t.total在“initializelock('clockdiv',deadline);”中,我认为clockdiv指的是一个id。因此,您应该在它前面加上“#”。@SkyeMacMaster不需要“#”前缀,因为在initializelock()中,OP用于选择不需要散列字符的元素。您是否尝试过:“var deadline=new Date('2019年12月16日');”