如何在JavaScript中创建一个高级倒计时计时器

How to create an advanced countdown timer in JavaScript?

本文关键字:一个 高级 计时器 倒计时 JavaScript 创建      更新时间:2023-09-26

我对JavaScript有点陌生,但我确实有一些基本的理解。我想创建一个倒计时计时器,将接受日期和时间,但我不确定如何或从哪里开始。

我希望倒计时定时器是这样的:http://www.timeanddate.com/clocks/freecountdown.html

那么我如何确保它在指定的时区,闰年和DST设置内工作?

欢迎来到Stackoverflow!

我不打算把所有的东西都给你,但是如果你想让时间绝对正确(即使客户端的计算机设置了错误的日期),你必须使用像TimeAPI这样的东西。

如果您想确保它在指定的时区工作,使用闰年等,Date对象应该可以做到这一点:

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

要处理DST,它更复杂,但一般的共识是只使用Date对象的UTC方法:

 var d=Date.UTC(2012,02,30);

这将确保您没有跨越任何时区边界。在SO上有几个类似的问题,所以请随意搜索

坦白说,你需要多学习javascript。

查看:

    JavaScript日期和时间教程
  • 日期/时间函数
  • JavaScript日期和时间函数
  • 日期方法或函数

基本上,您使用函数设置日期的各个时间部分。然后计算当前日期和期望的结束日期之间的差值(获取毫秒差值,然后计算显示剩余时间的时间字符串)。

一旦你产生了一些实际的代码,用它更新你的问题,我们可能能够帮助你更多。

这不是很高级,但这是一个良好的开端。示例将显示,到2015年还剩多少天、小时和分钟。

// NewYearCalculator
// Written by Riku Viitanen
// 2014
today = new Date();
BigDay = new Date("1, 1, 2015");
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
document.write("Only  " + daysLeft + " days,  " + hrsLeft +" hours and " + minsLeft + " minutes left to year 2015!");

对不起,我的英语不好,如果是:3