1

我对 javascript 并不太熟悉,但我已经玩了足够多的东西来使用我在这个站点上找到的脚本来做到这一点。

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

输出是一个非常接近星际迷航 Online 中当前使用的星历计算的数字。但是,该数字应使小数点左移 2 位。在我的等式中添加和删除零会缩短或延长我的计数,但我需要一个小数,我完全不知道如何才能做到这一点。

有人对我有想法吗?

4

1 回答 1

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
    
于 2012-05-03T21:53:07.877 回答