Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema countdown

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23

    Problema countdown

    Devo far partire un countdown in javascript. Se imposto manualmente la data finale nel codice js, funziona. Ma mi serve impostarlo dinamicamente in php, ma così il problema è che ci sono sempre 5-6 secondi in più, cioè invece di partire da 01:00:00, il countdown parte da 01:00:06. Uso questa funzione (per un countdown di un'ora):

    Codice PHP:
    $fine date("Y/m/d H:i:s"time() + 3600); 
    Il codice in js è questo :

    codice:
    <script language="JavaScript">
    TargetDate = "<? echo $fine ?>";
    BackColor = "";
    ForeColor = "white";
    CountActive = true;
    CountStepper = -1;
    LeadingZero = true;
    DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
    </script>
    <script language="JavaScript" src="countdown.js"></script>
    countdown.js:

    codice:
    function calcage(secs, num1, num2) {
      s = ((Math.floor(secs/num1))%num2).toString();
      if (LeadingZero && s.length < 2)
        s = "0" + s;
      return "" + s + "";
    }
    
    function CountBack(secs) {
      if (secs < 0) {
        //document.getElementById("cntdwn").innerHTML = FinishMessage;
        self.location.href="home.php";
        return;
      }
      DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
      DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
      DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
      DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
    
      document.getElementById("cntdwn").innerHTML = DisplayStr;
      if (CountActive)
        setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
    }
    
    function putspan(backcolor, forecolor) {
     document.write("<span id='cntdwn' style='background-color:" + backcolor + 
                    "; color:" + forecolor + "'></span>");
    }
    
    if (typeof(BackColor)=="undefined")
      BackColor = "white";
    if (typeof(ForeColor)=="undefined")
      ForeColor= "black";
    if (typeof(TargetDate)=="undefined")
      TargetDate = "12/31/2020 5:00 AM";
    if (typeof(DisplayFormat)=="undefined")
      DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
    if (typeof(CountActive)=="undefined")
      CountActive = true;
    if (typeof(FinishMessage)=="undefined")
      FinishMessage = "";
    if (typeof(CountStepper)!="number")
      CountStepper = -1;
    if (typeof(LeadingZero)=="undefined")
      LeadingZero = true;
    
    
    CountStepper = Math.ceil(CountStepper);
    if (CountStepper == 0)
      CountActive = false;
    var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
    putspan(BackColor, ForeColor);
    var dthen = new Date(TargetDate);
    var dnow = new Date();
    if(CountStepper>0)
      ddiff = new Date(dnow-dthen);
    else
      ddiff = new Date(dthen-dnow);
    gsecs = Math.floor(ddiff.valueOf()/1000);
    CountBack(gsecs);

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23
    Nessuno mi può aiutare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.