增加unix时间

时间:2012-05-26 12:09:34

标签: javascript unix-timestamp

我有一个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>

2 个答案:

答案 0 :(得分: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包含意外的内容,则引用是件好事。

答案 1 :(得分:2)

执行以下操作时,会为您的变量'later'分配一个字符串值:

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

你应该这样做:

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

那应该解决它。