2015-04-17 62 views
2

標題可能不是正確的,對此感到抱歉。給設置區間計數器值添加逗號

我正在嘗試爲網站製作一個livecounter,它的想法是顯示每秒增加的假數字。我有這個迄今爲止

var START_DATE = new Date("November 27, 2014 13:30"); // put in the starting date here 
 
var INTERVAL = 1; // in seconds 
 
var INCREMENT = 2; // increase per tick 
 
var START_VALUE = 901; // initial value when it's the start date 
 
var count = 0; //finally this shit is working 
 

 
window.onload = function() 
 
{ 
 
var msInterval = INTERVAL * 1000; 
 
var now = new Date(); 
 
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
 
document.getElementById('counter').innerHTML = count; 
 
setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = count;", msInterval); 
 
} 
 
<div id="counter"></div>

這是顯示了一些像「24350919」提高每一秒,我想將其轉換爲24350919。我嘗試了parseFloat,但我無法使它工作。

有人能幫我一個忙嗎?謝謝!

+0

使用'.toLocaleString()' –

+0

如果你不想依賴於用戶的瀏覽器的定位,並希望顯示了相同的模式,你可以使用這樣的事情'「24358703」.match(/ \ d {1,3}/g).join(「,」)'但我不知道如何修正你的模式的正則表達式。 – DontVoteMeDown

+0

是的,但是如果我這樣做,每次刷新瀏覽器時都會增加相同的數字,我希望每天都會顯示一個不斷增加的數字,直到永遠。謝謝! – CrazyF8ck

回答

1

編輯: -

var START_DATE = new Date("November 27, 2014 13:30"); // put in the starting date here 
 
var INTERVAL = 1; // in seconds 
 
var INCREMENT = 2; // increase per tick 
 
var START_VALUE = 901; // initial value when it's the start date 
 
var count = 0; //finally this shit is working 
 

 

 
window.onload = function() { 
 
    var msInterval = INTERVAL * 1000; 
 
    var now = new Date(); 
 
    count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
 
    document.getElementById('counter').innerHTML = addCommas(count); 
 
    setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = addCommas(count);", msInterval); 
 
} 
 

 
function addCommas(myStr) 
 
{ 
 
    myStr += ''; 
 
    var x = myStr.split('.'); 
 
    var x1 = x[0]; 
 
    var x2 = x.length > 1 ? '.' + x[1] : ''; 
 
    var rgx = /(\d+)(\d{3})/; 
 
    while (rgx.test(x1)) { 
 
     x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
 
    } 
 
    return x1 + x2; 
 
}
<div id="counter"></div>


你可以嘗試使用toLocaleString()這樣的:

var n = 24350919 
n.toLocaleString() 

在你的情況下,它會像

setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = 
     count;", msInterval.toLocaleString()); 
+0

謝謝你的回覆,它更新更頻繁,更快。但是我需要的是顯示24,350,919這樣的「,」。 – CrazyF8ck

+1

@JoshChisnerman: - 更新我的代碼。請立即檢查! –

+2

我愛你的男人!這很好用!謝謝你太多了! – CrazyF8ck

1

嘗試.toLocaleString()

msInterval.toLocaleString() 
+0

謝謝你的回覆,它更新更頻繁,更快。但是我需要的是顯示24,350,919這樣的「,」 – CrazyF8ck