2012-05-03 14 views
1

我不是非常熟悉JavaScript,但我已经足够使用我在this site找到的脚本得到这个。我怎样才能把一个小数点在UNIX活动计数作为stardate

<script> 
function updateClock () { 
var sd = Math.round(new Date().getTime() * 0.0000067322371075102); 
document.getElementById("stardate").firstChild.nodeValue = sd; 
} 
</script> 
<body onload="updateClock(); setInterval('updateClock()', 1000)"> 
<span id="stardate">&nbsp;</span> 
</body> 

输出是一个非常接近Star Trek Online当前使用的stardate计算的数字。但是,该数字应该有小数点左移2个位置。在我的公式中添加和删除零将缩短或延长我的计数,但我需要一个小数,而我完全不知道如何才能实现这一点。

有没有人有我的想法?

回答

1

或者:

var sd = ... 
var dotted = (sd+"").replace(/..$/,'.$&'); 

或者:

var sd = ... 
var dotted = (sd/100).toFixed(2); 

几点建议:

  1. 这是不是在你的HTML混合JavaScript的一个好主意;而不是将JavaScript放入HTML属性中,以编程方式附加您的处理程序。例如:

    <!-- in the <head> --> 
    <script type="text/javascript"> 
        window.addEventListener('load',function(){ 
        // this code will run once the page has loaded 
        },false); 
    </script> 
    
    <!-- or alternatively right before </body> put --> 
    
    <script type="text/javascript"> 
        // this code will run once all elements have been created 
    </script> 
    
  2. setInterval可以采取函数值作为参考。而是写:

    // this creates a new anonymous function that invokes foo() 
    // similar to using new Function("foo()") 
    setInterval("foo()",1000); 
    

    ...更好地做到这一点:

    setInterval(foo,1000); // Functionally equivalent, less typing 
    
+0

如果这类原因去updateclock函数内? – yarhouse

+0

@ lopac1029是的。你在更新时钟中计算'sd'。然后按摩这个价值,然后用它做什么。 – Phrogz

+0

明白了。由于我对js不太熟悉,所以花了一些时间来处理它。但现在我有一个更新的时钟。谢谢你,先生。 – yarhouse

相关问题