如何将UNIX实时计数中的小数点设为stardate

时间:2012-05-03 21:49:10

标签: javascript unix-timestamp

我对javascript并不是很熟悉,但我已经玩了足够的东西来使用我在this site找到的脚本来实现这一目标。

<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中使用的标准计算的数字。但是,该数字应该有小数点左移2个位置。在我的等式中添加和删除零会缩短或延长我的计数,但我需要一个小数,我完全不知道如何才能实现这一点。

有没有人对我有所了解?

1 个答案:

答案 0 :(得分: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