C#到JavaScript实时/日期转换

时间:2014-01-22 17:37:03

标签: c# javascript jquery

我在C#中有这个代码,每次加载浏览器时都会生成一个结果。

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))) + "**";

结果:

- 我们已经产生75,070,550千瓦时* 2013年清洁能源。

- 这意味着我们不再在大气中排放24,528 ** g的二氧化碳。


我如何使用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/

1 个答案:

答案 0 :(得分:0)

试试这个:

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);

它可能会做得更干净,但我试图模仿C#方法。如果要格式化没有小数的字符串并添加逗号,请使用Number.toNormalString。该示例每个方向都有一个值。

这是小提琴:http://jsfiddle.net/MQZUB/3/

更新:我意识到扩展Number对象而不是String对象更加清晰。