Php Counter在加载后隐藏逗号并且不会永久显示

问题描述 投票:0回答:2

我想找出一个php计数器。我在php函数中添加了Number格式来打印前3位后用逗号分隔的计数器数字。但是Comma在页面加载后不会永久显示,当我重新加载页面时,逗号显示片刻但立即隐藏。以下是我用来获得此结果的代码,请查看计数器页面。

<?php
$bg = get_field('counter_bg');

$init_value = get_field('init_value');
$init_date = get_field('init_date');
$seconds = strtotime("now") - strtotime($init_date);
$countup_value = get_field('countup_value');
$number = round((($seconds * $countup_value) + $init_value) * 100) / 100;

if($number) :
  $title = get_field('counter_title');
  $text = get_field('counter_text');
  ?>
  <section class="home-section" id="home-counter" <?php if($bg['url']) echo "style='background-image: url({$bg['sizes']['slide-thumb']})'"; ?>>
    <div class="container">
      <?php
      if($title) echo "<h3 class='counter-title'>{$title}</h3>";
      echo "<div id='counter-number'>";
      echo Number_format ($number);
      echo "</div>";
      if($text) echo "<div class='counter-text'>{$text}</div>";
      ?>

    </div><!--containr-->
  </section><!--home-section-->

  <script>
    (function($) {

      $(document).ready(function(){

        var counter = $('#counter-number');
        var coutUp = Number(<?= $countup_value ?>);

        setInterval(function() {
          counter.text(calculate_value);
        }, 1000)

        function calculate_value() {
          var initDate = moment('<?= $init_date ?>').format('x');
          var nowDate = moment().format('x');
          var dif = Number((nowDate - initDate) / 1000);
          var value = Number(dif * coutUp);
          // console.log(initDate, nowDate, dif, value, '<?= $init_date ?>');
          return value.toFixed(2)

        }

      });

    })(jQuery);
  </script>

<?php endif; ?>

请查看当前的命令显示问题:qazxsw poi

javascript php jquery css wordpress
2个回答
0
投票

根据php http://airlite.designase.com/it/,你想将数字分组数千。您可以通过更改number_format函数的返回值来实现:

calculate_value

正则表达式将每3位数添加一个逗号,如下所示:

return value.toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
   (function($) {

      $(document).ready(function(){

        var counter = $('#counter-number');
        var coutUp = Number(1);

        setInterval(function() {
          counter.text(calculate_value);
        }, 1000)

        function calculate_value() {
          var initDate = moment(20111031).format('x');
          var nowDate = moment().format('x');
          var dif = Number((nowDate - initDate) / 1000);
          var value = Number(dif * coutUp);
          // console.log(initDate, nowDate, dif, value, '<?= $init_date ?>');
          return value.toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        }

      });

    })(jQuery);

0
投票

现在它应该保留逗号。您可以通过更改JS函数末尾的toFixed()函数中的(2)参数来设置小数位数。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="counter-number"></span>
© www.soinside.com 2019 - 2024. All rights reserved.