【问题标题】:timestamp countdown in javascript and phpjavascript和php中的时间戳倒计时
【发布时间】:2011-08-08 12:07:37
【问题描述】:

我需要一些帮助来编写一个从 unix 时间戳计算天、小时、分钟和秒的脚本。

时间戳是用php创建的

<? php echo hours ();?>

我希望脚本使用 JavaScript 实时倒计时。

示例 2 天,3:15:39

希望有人可以帮助我一点:)

【问题讨论】:

  • 确切地说,&lt;? php echo hours ();?&gt; 将什么写入文件中,javascript 应该用于倒计时?例如,自 UNIX 时代以来的秒数?要倒计时的秒数/分钟数/小时数?倒计时的时间?什么?

标签: php javascript jquery


【解决方案1】:

首先你有一些 PHP 错误。它应该是例如

<?php echo time(); ?>

为了便于展示示例,我在 JavaScript 中使用了时间戳。

http://jsfiddle.net/pimvdb/AvXd3/

// the difference timestamp
var timestamp = (Date.now() + 1000 * 60 * 60 * 24 * 3) - Date.now();

timestamp /= 1000; // from ms to seconds

function component(x, v) {
    return Math.floor(x / v);
}

var $div = $('div');

setInterval(function() { // execute code each second

    timestamp--; // decrement timestamp with one second each second

    var days    = component(timestamp, 24 * 60 * 60),      // calculate days from timestamp
        hours   = component(timestamp,      60 * 60) % 24, // hours
        minutes = component(timestamp,           60) % 60, // minutes
        seconds = component(timestamp,            1) % 60; // seconds

    $div.html(days + " days, " + hours + ":" + minutes + ":" + seconds); // display

}, 1000); // interval each second = 1000 ms

【讨论】:

  • setInterval 不会完全按照指定的时间间隔运行,并且会缓慢漂移,因此会与系统时钟不同步,偶尔会跳过两秒。调用 setTimeout 会更好,将时间计算为下一整秒后大约 20 毫秒。它可能仍然会跳过,但前提是系统很忙,而不是因为漂移,并且大部分会与系统时钟同步“滴答”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 2011-12-08
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多