У меня есть этот код на С#, который генерирует результат ниже при каждом загрузке браузера.
C#
Double ValorGerado = 40.1714444;
Double Co2 = 13.1254644;
TimeSpan final = DateTime.Now.Subtract(Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString() + " 00:00"));
this.lblGeracao.Text = String.Format("{0:#,##0}", (Convert.ToDecimal(ValorGerado * final.TotalSeconds))) + "*";
this.lblCO2.Text = String.Format("{0:#,##0}", ((Convert.ToInt32(Co2 * final.TotalSeconds) / 1000))) + "**";
Результат:
- В 2013 году мы произвели 75 070 550 кВтч * Чистая энергия.
- Это означает, что мы прекращаем излучать в атмосферу 24 528 ** г СО2.
Как я могу получить этот результат в реальном времени с помощью javaScript? как он мог это сделать?
Я начал делать что-то вроде этого:
JS
var ValorGerado = 40.1714444;
var Co2 = 13.1254644;
var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth() + 1;
var curr_year = d.getFullYear();
var curr_seconds = d.getSeconds();
setInterval(function() {
$('.Timer').text((new Date) * ValorGerado);
}, 1);
И HTML
HTML
<div class="Timer" style="width:100%;"></div>
Любая помощь будет оценена, спасибо.
Вот пример, который очень похож: http://opower.com/
Попробуй это:
var yearStart = new Date((new Date()).getFullYear(),0,1),
ValorGerado = 40.1714444,
Co2 = 13.1254644;
Number.prototype.toNormalString = String.prototype.toNormalString || function(){
return this.toString().split('.')[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}
setInterval(function(){
var secondsElapsed = (new Date()).getTime() - yearStart.getTime();
$('.geracaoValue').text(secondsElapsed * ValorGerado);
$('.co2Value').text(((secondsElapsed * Co2) / 1000).toNormalString());
}, 30);
Вероятно, это можно сделать немного чище, но я попытался подражать методу С#. Если вы хотите отформатировать строку без десятичной и добавить запятую, используйте Number.toNormalString. Пример имеет одно значение в каждом направлении.
Вот скрипка: http://jsfiddle.net/MQZUB/3/
Обновление: я понял, что расширение объекта Number вместо объекта String было намного чище.
(new Date() - d)
которая дает вам миллисекунды.