我有一个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>
答案 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
那应该解决它。