Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助调整Javascript的结果';s倒计时_Javascript_Width_Countdown - Fatal编程技术网

需要帮助调整Javascript的结果';s倒计时

需要帮助调整Javascript的结果';s倒计时,javascript,width,countdown,Javascript,Width,Countdown,我正在进行倒计时: 我想为我倒计时的每个结果(分钟、小时、天)添加一个特定的宽度,以便数字始终与下面的文本完全一致 是否可以为每个结果创建一个变量,并在以后的html代码中调用它们 下面是倒计时的脚本: <script type="text/javascript"> var myMonth = "<?= $myMonth ?>"; var myDay = "<?= $myDay ?>"; var myYear = "<?= $myYear ?>"

我正在进行倒计时:

我想为我倒计时的每个结果(分钟、小时、天)添加一个特定的宽度,以便数字始终与下面的文本完全一致

是否可以为每个结果创建一个变量,并在以后的html代码中调用它们

下面是倒计时的脚本:

<script type="text/javascript">

var myMonth = "<?= $myMonth ?>";
var myDay = "<?= $myDay ?>";
var myYear = "<?= $myYear ?>";
var myHour = "<?= $myHour ?>";
var myMin = "<?= $myMin ?>";

dateFuture1 = new Date(2013,03,26,14,15,00);

function GetCount(ddate,iid){

    dateNow = new Date();   //grab current date
    amount = ddate.getTime() - dateNow.getTime();   //calc milliseconds between dates
    delete dateNow;

    // if time is already past
    if(amount < 0){
        document.getElementById(iid).innerHTML="I'm now married!";
    }
    // else date is still good
    else{
        years=0;weeks=0;days=0;hours=0;mins=0;secs=0;out="";

        amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

        years=Math.floor(amount/31536000);//years (no leapyear support)
        amount=amount%31536000;

        weeks=Math.floor(amount/604800);//weeks
        amount=amount%604800;

        days=Math.floor(amount/86400);//days
        amount=amount%86400;

        hours=Math.floor(amount/3600);//hours
        amount=amount%3600;

        mins=Math.floor(amount/60);//minutes
        amount=amount%60;

        secs=Math.floor(amount);//seconds

        out += years +""+((years==1)?"":"")+"";
        out += weeks +""+((weeks==1)?"":"")+"";
        if(days != 0){out += days +""+((days==1)?"":"")+"";}
        if(hours != 0){out += hours +""+((hours==1)?"":"")+"";}
        out += mins +""+((mins==1)?"":"")+"";
        out += secs +""+((secs==1)?"":"")+", ";
        out = out.substr(0,out.length-2);
        document.getElementById(iid).innerHTML=out;
        setTimeout(function(){GetCount(ddate,iid)}, 1000);
    }
}

window.onload=function(){
    GetCount(dateFuture1, 'countbox1');
    //you can add additional countdowns here (just make sure you create dateFuture2 and countbox2 etc for each)
};
</script>

var myMonth=“”;
var myDay=“”;
var myYear=“”;
var myHour=“”;
var myMin=“”;
dateFuture1=新日期(2013,03,26,14,15,00);
函数GetCount(ddate,iid){
dateNow=new Date();//获取当前日期
amount=ddate.getTime()-dateNow.getTime();//计算日期之间的毫秒数
删除dateNow;
//如果时间已经过去
如果(金额<0){
document.getElementById(iid).innerHTML=“我现在结婚了!”;
}
//否则日期还是好的
否则{
年=0;周=0;天=0;小时=0;分钟=0;秒=0;out=“”;
amount=Math.floor(amount/1000);//去掉“毫秒”,只需秒
年份=数学下限(金额/31536000);//年份(无leapyear支持)
金额=金额%31536000;
周=数学下限(金额/604800);//周
金额=金额%604800;
天数=数学下限(金额/86400);//天
金额=金额%86400;
小时=数学地板(数量/3600);//小时
金额=金额%3600;
分钟=数学地板(数量/60);//分钟
金额=金额%60;
秒=Math.floor(数量);//秒
out+=years++(years==1)?:+;
out+=周++((周==1)?:)+;
如果(天!=0){out+=days++((days==1)?:)+;}
如果(小时!=0){out+=hours++((小时==1)?:)+;}
out+=mins++((mins==1)?:)+;
out+=secs++((secs==1)?:)+;
out=out.substr(0,out.length-2);
getElementById(iid).innerHTML=out;
setTimeout(函数(){GetCount(ddate,iid)},1000);
}
}
window.onload=function(){
GetCount(dateFuture1,‘countbox1’);
//您可以在此处添加其他倒计时(只需确保为每个倒计时创建dateFuture2和countbox2等)
};

非常感谢你的帮助

是的,你都能做到。将每个数字放在自己的分区内,并将文本放在每个分区的中心。不需要编码以确保文本居中


现在的主要问题是,所有数字(年、周、日、小时等)都被压缩到一个div(iid也称为“countbox1”)中,而它们需要被分离到各自的div中。

我将确定数字的长度,然后使用该长度来确定适当的宽度。动态分配内存并不好(至少在我看来)。要确定长度,我相信有更好的方法,但一个简单的方法是一直除以10,直到值小于1,然后计算值被除以的次数

while(flag){
  i++;
  res = res/10
  if(res<1)
  flag=false;
}

// i would be your length
// should make this into a function prob 
while(标志){
i++;
res=res/10

if(res+1表示
//终止毫秒数