【问题标题】:How I do make a javascript or jquery counter that counts up infinitely from a number daily我如何制作一个每天从一个数字无限计数的 javascript 或 jquery 计数器
【发布时间】:2015-10-12 20:52:01
【问题描述】:

我需要制作一个 javascript 或 jquery 计数器来计数,但起始数字需要由客户端通过 WordPress 控制,并且增量也需要由客户端控制。它应该工作的方式是起始数字(例如 5,000,000)应该从 5,000,000 而不是 0 开始计数,然后每 24 小时它应该增加 1,500,000。我有以下代码:

     <script type="text/javascript">
         jQuery(document).ready(function($) {

           var base = <?php echo the_field('number_displayed', 'option'); ?>;
           var rate = <?php echo the_field('number_increment', 'option'); ?> / 86400 / 1000;

        setInterval(function() {
           var count = Math.floor(rate + base).toLocaleString('en');
           $('.count').text(count);

        }

   });

请帮忙

【问题讨论】:

  • 你的页面每次刷新吗?你如何保持页面不过期?
  • 您可能必须编写一个 cron 作业才能使脚本自动运行。由于 javascript 是客户端,如果您希望它在 javascript 中工作,则必须保持页面打开(并且仅适用于该客户端)
  • @DinoMyte 它应该在每次刷新后计数
  • @ntgCleaner 一个 cron 作业?
  • @MikeL5799,正如 ntgCleaner 提到的那样,这不是你想在 javascript 中做的事情,因为它不会保留任何以前的状态。您需要每 24 小时启动一次的外部工作,并根据标准和先前计算的值显示新值。

标签: javascript jquery wordpress advanced-custom-fields


【解决方案1】:

我将存储计数器的初始值 (5,000,000)、转换为秒的增量速率(每天 1,500,000 除以 (24*60*60))以及该计数器初始化/设置的世界时运动。

然后,要显示计数器,您想要的值是:(( now() - stored_utc) * rate_in_seconds) + initial_counter。

并使用它来为您的 setInterval 计时器播种。

抱歉没有提供代码,好久没接触Wordpress和PHP了。

【讨论】:

  • 请注意,初始计算必须全部在服务器端完成,否则您可能会根据访问者的时区而有所不同。并确保 now() 舍入到秒。
猜你喜欢
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多