2

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

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

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

4

3 回答 3

1

欢迎来到 Stackoverflow!

我不会透露所有内容,但是如果您希望时间明确正确(即使客户的计算机设置为错误的日期),您也必须使用类似TimeAPI的东西。

如果您想确保它在指定的时区、闰年等情况下工作,Date对象应该可以解决问题:

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

处理 DST 比较复杂,但一般的共识就是使用Date 对象的 UTC 方法

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

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

于 2013-03-15T00:34:21.030 回答
0

坦率地说,你需要更多地学习 javascript。

查看:

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

一旦您生成了一些实际代码,请用它更新您的问题,我们可能会为您提供更多帮助。

于 2013-03-15T01:03:27.137 回答
0

这不是很先进,但它是一个好的开始。示例将打印到 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

于 2014-03-20T15:52:49.017 回答