【问题标题】:JavaScript countdown timer: Calculate how many seconds until midnight ESTJavaScript倒数计时器:计算距离美国东部标准时间午夜还有多少秒
【发布时间】:2014-01-31 14:34:19
【问题描述】:

我正在使用在 JavaScript 中运行的 24 小时倒计时计时器。目前,它使用秒作为其基本度量。我在这里列出了 86400,但我想计算每天距离午夜还有多少秒,即 EST (-5)。有人可以演示我如何定义该值并将其插入“时间”变量吗?我已经看到了这个的其他变体,但我无法让它适用于这个特定的脚本。提前谢谢你。

<script type="application/javascript">
var myCountdown1 = new Countdown({
time: 86400, // 86400 seconds = 1 day
width:200, 
height:55,  
rangeHi:"hour",
style:"flip"    // <- no comma on last item!
});
</script>

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以从午夜的 UNIX 时间戳中减去现在的 UNIX 时间戳:

    var now = new Date();
    var night = new Date(
        now.getFullYear(),
        now.getMonth(),
        now.getDate() + 1, // the next day, ...
        0, 0, 0 // ...at 00:00:00 hours
    );
    var msTillMidnight = night.getTime() - now.getTime();
    var myCountdown1 = new Countdown({
        time: msTillMidnight / 1000, // divide by 1000 to get from ms to sec, if this function needs seconds here.
        width:200, 
        height:55,  
        rangeHi:"hour",
        style:"flip"    // <- no comma on last item!
    });
    

    在这里,您只需设置一个计时器,该计时器采用午夜的 UNIX 时间戳,并从现在的 UNIX 时间戳中减去它,这将产生直到午夜的毫秒数。这是它在执行脚本之前将等待的毫秒数。

    【讨论】:

    • 乔伊,先生,你很有才华。谢谢!
    • now.getDate() 为 31 时会发生什么?
    • @Aaron 这是自动处理的。因此,例如执行new Date(2000, 11, 32, 0, 0, 0)(2000 年 12 月 32 日)将导致Mon Jan 01 2001 00:00:00。因此,即使月份甚至年份发生变化,只要输入一个对该月来说太高的日期数字,就会在下个月增加超过允许天数的天数。 TL;DR: 它仍然有效。
    猜你喜欢
    • 2012-08-13
    • 1970-01-01
    • 2021-06-21
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多