Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    18

    Orologio che non scorre

    Chiedo quasi mai perche' cerco di informarmi sulle diverse pillole o attraverso il search, ma mi sto scornando su questo problema.


    Ho un js esterno che ha questo codice:

    codice:
    var giorno = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"); 
    var mese = new 
    
    Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre
    
    ","Novembre","Dicembre"); 
    var oggi = new Date(); 
    var data = ""; 
    data+=oggi.getHours()>12?oggi.getHours()<18?"Buon pomeriggio":"Buonasera":"Buongiorno"; 
    data+=", oggi è "; 
    data+=giorno[eval(oggi.getDay())]+", "; 
    data+=oggi.getDate()<10?"0"+oggi.getDate()+" ":oggi.getDate()+" "; 
    data+=mese[eval(oggi.getMonth())]+" "; 
    data+=oggi.getFullYear()+" - "; 
    data+=oggi.getHours()<10?"0"+oggi.getHours()+":":oggi.getHours()+":"; 
    data+=oggi.getMinutes()<10?"0"+oggi.getMinutes()+":":oggi.getMinutes()+":"; 
    data+=oggi.getSeconds()<10?"0"+oggi.getSeconds()+"":oggi.getSeconds()+""; 
    setTimeout("orologio()",1000);
    document.write(data);

    Mentre nell'html:

    <body>
    bla bla bla

    <div class="orologio">
    <script type="text/javascript" src="orologio.js"></script>
    </div>

    bla bla bla
    </body>


    Se rimango qualche minuto a fissare la pagina, l'ora non cambia, mi stampa solo l'orario che viene richiamato in quel momento sulla pagina, ma i secondi non scorrono.
    Vorrei evitare di scrivere nell'head il codice js, mantenendolo quindi in esterno, nel caso il cliente decidesse di togliere quel Buongiorno, buonasera ecc senno' dovrei intervenire su tutte le pagine.

    Grazie per i suggerimenti.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Lo script fa quello che gli si chiede... viene eseguito durante il caricamento della pagina e scrive la data e l'ora... ma poi non viene piu' richiamato e quindi...

    Se non trovi un orologio dinamico fra le raccolte del sito, riposta, vediamo di adattarlo senza stravolgerlo (a fini puramente didattici).

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    18
    Si guarda, ho fatto quel che ho potuto e mi manca giusto un pelo.
    Non mastico programmazione ma cerco di capire cosa sta dietro ad una pagina, ho guardato degli script e ho provato delle impostazioni setInterval o timerRunning=true senza successo.
    Posso togliere anche i secondi, ma poi il cliente si accorge che l'orologio è un fake

    Un ultimo aiutino?
    L'aiuto da casa mi è inutile, non ho le alternative per l'aiuto del pubblico, magari sono disposto al 50 e 50
    L'accendiamo ?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi :

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function orologio() {
     var giorno = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"); 
     var mese   = new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"); 
     var oggi   = new Date(); 
     var data   = ""; 
     data+=oggi.getHours()>12?oggi.getHours()<18?"Buon pomeriggio":"Buonasera":"Buongiorno"; 
     data+=", oggi è "; 
     data+=giorno[eval(oggi.getDay())]+", "; 
     data+=oggi.getDate()<10?"0"+oggi.getDate()+" ":oggi.getDate()+" "; 
     data+=mese[eval(oggi.getMonth())]+" "; 
     data+=oggi.getFullYear()+" - "; 
     data+=oggi.getHours()<10?"0"+oggi.getHours()+":":oggi.getHours()+":"; 
     data+=oggi.getMinutes()<10?"0"+oggi.getMinutes()+":":oggi.getMinutes()+":"; 
     data+=oggi.getSeconds()<10?"0"+oggi.getSeconds()+"":oggi.getSeconds()+""; 
     document.getElementById('watch').innerHTML = data;
    }
    setInterval("orologio()",1000);
    //-->
    </script>
    
    </head>
    <body>
    <div id="watch"></div>
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    18
    Grazie, allora...

    in orologio.js ho messo:

    codice:
    function orologio() {
     var giorno = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"); 
     var mese   = new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"); 
     var oggi   = new Date(); 
     var data   = ""; 
     data+=oggi.getHours()>12?oggi.getHours()<18?"Buon pomeriggio":"Buonasera":"Buongiorno"; 
     data+=", oggi è "; 
     data+=giorno[eval(oggi.getDay())]+", "; 
     data+=oggi.getDate()<10?"0"+oggi.getDate()+" ":oggi.getDate()+" "; 
     data+=mese[eval(oggi.getMonth())]+" "; 
     data+=oggi.getFullYear()+" - "; 
     data+=oggi.getHours()<10?"0"+oggi.getHours()+":":oggi.getHours()+":"; 
     data+=oggi.getMinutes()<10?"0"+oggi.getMinutes()+":":oggi.getMinutes()+":"; 
     data+=oggi.getSeconds()<10?"0"+oggi.getSeconds()+"":oggi.getSeconds()+""; 
     document.getElementById('orologio').innerHTML = data;
    }
    setInterval("orologio()",1000);

    E poi nel body

    <body>

    bla bla bla

    <div id="orologio">
    <script type="text/javascript" src="orologio.js"></script>
    </div>

    ba bla bla
    </body>


    Però non è ancora del tutto fluido, tipo che mi dà 19.50.13 e poi mi si blocca di qualche secondo e avanza di 2-3 secondi.

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.