Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Data e ora in tempo reale

    Ciao a tutti, ho questo script che mi stampa data e ora in tempo reale ma i secondi sono bloccati e io invece vorrei vederli avanzare. Penso si debba aggiungere setTimeout("getData()", 1000);
    ma dove lo devo aggiungere nel codice seguente?
    fatto questo com'è possibile creare una funzione e richiamarla all'interno della pagina a mio piacere?

    <SCRIPT LANGUAGE="javascript">
    <!--
    var obj = new Date();
    var mese,giorno;
    var nome="";
    var stringa="";

    document.write();

    // Giorno della settimana
    giorno = obj.getDay();

    switch(giorno) {
    case 0: nome = "Domenica"; break;
    case 1: nome = "Lunedi'"; break;
    case 2: nome = "Martedi'"; break;
    case 3: nome = "Mercoledi'"; break;
    case 4: nome = "Giovedi'"; break;
    case 5: nome = "Venerdi'"; break;
    case 6: nome = "Sabato";
    }

    stringa = nome+", "+obj.getDate();
    document.write(stringa.fontcolor("darkred").toUppe rCase());

    // Mese dell'anno
    mese = obj.getMonth();

    switch(mese) {
    case 0: nome = "Gennaio"; break;
    case 1: nome = "Febbraio"; break;
    case 2: nome = "Marzo"; break;
    case 3: nome = "Aprile"; break;
    case 4: nome = "Maggio"; break;
    case 5: nome = "Giugno"; break;
    case 6: nome = "Luglio"; break;
    case 7: nome = "Agosto"; break;
    case 8: nome = "Settembre"; break;
    case 9: nome = "Ottobre"; break;
    case 10: nome = "Novembre"; break;
    case 11: nome = "Dicembre";
    }

    stringa = " "+nome+" "+obj.getFullYear();
    document.write(stringa.fontcolor("darkred").toUppe rCase());
    document.write("
    Ora locale: ");
    document.write(obj.getHours()+":"+obj.getMinutes() +":"+obj.getSeconds());
    //-->
    </SCRIPT>

    P.S.: se avete anche altre idee, a me serve la data tipo "Martedi 03 aprile 2012 - ore 15:08:30" con i secondi che scorrono...

    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, con setTimeout non cicli qualcosa ma esegui quello che gli dici dopo i secondi indicati dal parametro e quindi in questo caso 1000(1secondo) e poi si ferma.

    Dovresti quindi usare una funzione per richiamare la data e richiamarlo con setInterval()
    http://javascript.html.it/articoli/l...in-javascript/

    Altra cosa quindi se non ho visto male, con lo script crei la pagina usando document.write()
    Questo va bene al caricamento della pagina ma se lo richiami riscrive tutta la pagina nel caso ci fosse altro contenuto oltre al contatore.

    Se quindi devi implementarla in una pagina dovresti modifcare l'html del contenitore assegnato tipo

    var laTuaData = funzione_che_la_genera();
    document.getElementById('orario').innerHTML = laTuaData;
    usandola con setInterval

  3. #3
    grazie per le belle parole... ma sono in alto mare...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    codice:
    <script type="text/javascript">
    function digitalclock(){
    var data =new Date()
    mese = data.getMonth();
    giorno =data.getDay();
    anno = data.getFullYear();
    date = data.getDate();
    ora = data.getHours();
    minuti=data.getMinutes();
    secondi=data.getSeconds();
    if(giorno == 0)giorno = "Domenica"; 
    if(giorno == 1)giorno = "Luned\ì";
    if(giorno == 2)giorno = "Marted\ì";
    if(giorno == 3)giorno = "Mercoled\ì";
    if(giorno == 4)giorno = "Gioved\ì";
    if(giorno == 5)giorno = "Venerd\ì";
    if(giorno == 6)giorno = "Sabato";
    if(mese == 0)mese = "Gennaio";
    if(mese ==1)mese = "Febbraio";
    if(mese ==2)mese = "Marzo";
    if(mese ==3)mese = "Aprile";
    if(mese ==4)mese = "Maggio";
    if(mese ==5)mese = "Giugno";
    if(mese ==6)mese = "Luglio";
    if(mese ==7)mese = "Agosto";
    if(mese ==8)mese = "Settembre";
    if(mese ==9)mese = "Ottobre";
    if(mese ==10)mese = "Novembre";
    if(mese ==11)mese = "Dicembre";
    if (date < 10)date="0"+date;
    if (ora < 10)ora="0"+data;
    if (minuti < 10)minuti="0"+minuti;
    if (secondi < 10)secondi="0"+secondi;
    data="<font size='4' face='Verdana' color='darkred'>"+giorno+" "+date+" "+mese+" "+anno+" - ore "+ora+":"+minuti+":"+secondi+"</font>"
    document.getElementById("clock").innerHTML=data;
    }
    setInterval("digitalclock()",1000)
    </script>
    </head>
    <body>
    <div id="clock"></div>

    Masssimo.

  5. #5
    Grazie Massimo è quasi tutto a posto... c'era solo un piccolo errorino nel codice...
    al posto di
    if (ora < 10)ora="0"+data;
    andava messo
    if (ora < 10)ora="0"+ora;

    Grazie ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    svista

    scritto on the fly.


    Massimo.

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Come spesso succede con le date, lo script contiene una marea di codice inutile… Puoi semplificare il tutto più o meno così_

    codice:
    setInterval(function() { document.getElementById("tuoElemento").innerHTML = "Ora locale: " + (new Date()).toLocaleString(); }, 1000);

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.