将逗号添加到 javascript 计数计时器

Posted

技术标签:

【中文标题】将逗号添加到 javascript 计数计时器【英文标题】:Add commas to a javascript countup timer 【发布时间】:2011-08-07 03:52:46 【问题描述】:

这是我的程序:

<script>
var montharray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

function countup(yr, m, d) 
    var today = new Date()
    var todayy = today.getYear()
    if (todayy < 1000) todayy += 1900
    var todaym = today.getMonth()
    var todayd = today.getDate()
    var todaystring = montharray[todaym] + " " + todayd + ", " + todayy
    var paststring = montharray[m - 1] + " " + d + ", " + yr
    var difference = (Math.round((Date.parse(todaystring) - Date.parse(paststring)) / (24 * 60 * 60 * 1000)) * 1)
    difference += ""
    document.write("" + difference + "")

//enter the count up date using the format year/month/day
countup(2007, 01, 24)
</script>

我试图让输出在千位插入逗号(例如 1,234 而不是 1234)。我该怎么做?

【问题讨论】:

这里没有真正的问题。投票结束。 @Delan,我认为这个问题是真实的,它只是需要一些清理。 @Eric 为什么要把空字符串("")加到difference上? 我同意彼得的观点。用户是新用户,只需要对问题进行一些清理。无需因此而粗鲁并关闭它。 @Kris,实际上,不应该在那里。这与尝试将字符串输出到添加逗号的函数有关。我把它放在那里是我的错误。 -- 下面还有更多的 cmets,谢谢。 【参考方案1】:

要为每三分之一添加逗号,只需从后面遍历转换为字符串的数字,每三分之一添加一个逗号。

var str = "" + num;
var s2 = "";
for( var i = str.length()-1; i != 0; i-- )
    s2 += str.charAt(i);
    if( 0 == (str.length() - i) % 3 )
        s2 += ",";

等等。不确定数学。

【讨论】:

这个。只需确保在循环中向后工作,以便确保逗号正确。编辑:我在他添加代码之前添加了我的评论(所以没有人认为我疯了):) 在上面评论过,但这正是我一直没有想到的......将我的字符串从倒数计时器获取到逗号函数。对不起,我是一个新手:“只需迭代从后面转换为字符串的数字,每三分之一”完全令人困惑。 迭代依次遍历每个项目。转换为字符串的数字是 12345(一个数字)变为“12345” - 一个字符串,因此您可以遍历字符。从后面 - 你从“5”开始,然后转到“1”。这是由for 循环和i-- 完成的。每隔三分之一 - 这是用 % 符号完成的,它是模运算符 - 你可能从数学课上知道:) 所以复制三个字符,放一个逗号,接下来的三个字符,等等。 感谢 Ondra,这很有帮助。让我看看我能不能完成这项工作。

以上是关于将逗号添加到 javascript 计数计时器的主要内容,如果未能解决你的问题,请参考以下文章

在动画计数功能中添加逗号

我如何在这个计数器脚本的 1000 中添加一个逗号 [重复]

秒之间的Javascript逗号

javascript逗号计数格式的多种转化方法

十进制逗号删除并将逗号添加到javascript中的大数字

倒计时计时器,在实际时间前 2 秒计数