2

UNIX時間があります。例:var later = 135000;

後で変数を取得すると-=1000、134000を取得できます。

しかし、後で変数を取得すると+ = 1000、1350001000になります。

UNIX時間を増やすにはどうすればよいですか?

<script type="text/javascript"> 
   var later = "<?php echo $unix_time; ?>";
   var stop= setInterval('countdown()',1000);

   function countdown(plus_ten) {
        var now = new Date();

        var now_time= now.getTime()/1000;
        now_time= Math.floor(now_time);

        if(plus_ten){
            later = later + 1000;
            alert(later);
        }

        var sec = later- now_time;
        if(sec<=0){
            clearInterval(stop);
            alert('hello');
        }

        sec= Math.floor(sec);
        var min = Math.floor(sec / 60);
        var hour = Math.floor(min / 60);

        hour %= 24;
        min %= 60;
        sec %= 60;

        document.getElementById("hoursBox").innerHTML = hour;
        document.getElementById("minsBox").innerHTML = min;
        document.getElementById("secsBox").innerHTML = sec;       
    }
</script>
4

2 に答える 2

3

JavaScriptは緩く型付けされた言語であることを忘れないでください。変数が整数として処理されるか文字列として処理されるかは、変数を使用するコンテキストによって異なります。

-マイナス)演算子は明らかに算術であるため、JSは減算することを知っています。ただし、+演​​算子は文字列の連結にも使用されるため、JSに加算を実行させる場合は、より明示的にする必要があります。二重引用符の中に内容を入れましたlater。これは、文字列として処理することをJSに示唆しています。それで:

var later = parseInt("<?php echo $unix_time; ?>");

また

later = later - 0 + 1000;  /* hints at arithmetic, then adds 1000 */

$unix_time予期しない何かが含まれている場合に備えて、引用は良いことです。

于 2012-05-26T12:22:53.193 に答える
2

次の場合、変数'later'には文字列値が割り当てられます。

var later = "<?php echo $unix_time; ?>";

代わりに次のことを行う必要があります。

var later = <?php echo $unix_time; ?>; // i.e. no quotes around the time stamp

それはそれを修正する必要があります。

于 2012-05-26T12:20:41.773 に答える