Visualizzazione risultati 1 fino 9 di 9

Discussione: La data non si aggiorna automaticamente

  1. #1
    Guest

    Predefinito La data non si aggiorna automaticamente

    Questo codice stampa la data, ma quando è mezzanotte non stampa il giorno successivo, per fare ciò devo aggiornare la pagina

    Codice PHP:
    //Data italiana
    function data() {
    var
    now = new Date();
    var
    giornosett = now.getDay();
    var
    giorno = now.getDate();
    var
    mese = now.getMonth();
    var
    anno = now.getFullYear();
    var
    nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago', 'set','ott','nov’,‘dic');
    setTimeout(function() {
    startTime()
    },
    1000);
    document.getElementById('data').innerHTML = giorno + ' ' + nameMth[mese] + ' ' + anno;
    }


    <
    body onload="data()">

    <
    span id="data"></span>

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Gli script si racchiudono tra tag <script>.

    In setTimeout() richiami una funzione, startTime(), che non esiste, forse volevi usare la funzione data()?, studiati meglio come fare la cosa, noterai che il problema che chiedi non è poi cosi tanto complicato da risolvere.

    P.S.: La funzione setTimeout nel tuo caso, visto che deve eseguire una funzione già definita nel tuo codice, puoi utilizzarla anche in questo modo: setTimeout("data()", 1000);.
    Ultima modifica di sevenjeak : 02-09-2012 alle ore 09.36.57

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Gli script si racchiudono tra tag <script>.

    In setTimeout() richiami una funzione, startTime(), che non esiste, forse volevi usare la funzione data()?, studiati meglio come fare la cosa, noterai che il problema che chiedi non è poi cosi tanto complicato da risolvere.

    P.S.: La funzione setTimeout nel tuo caso, visto che deve eseguire una funzione già definita nel tuo codice, puoi utilizzarla anche in questo modo: setTimeout("data()", 1000);.
    Adesso funziona

    va bene messo si il body? <body onload="data() && startTime()">
    Ultima modifica di photoman : 02-09-2012 alle ore 09.55.04

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cosa centra la funzione startTime(), che tra l'altro nel tuo script non esiste nemmeno.

    Hai letto completamente il mio precedente messaggio, se studi meglio la cosa capirai meglio gli errori che hai fatto nel tuo script.

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Cosa centra la funzione startTime(), che tra l'altro nel tuo script non esiste nemmeno.

    Hai letto completamente il mio precedente messaggio, se studi meglio la cosa capirai meglio gli errori che hai fatto nel tuo script.
    starTime è la seconda funzione (quella dell'ora) che faccio richiamare, non ho postato il codice perché funzionava già

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ah scusa, pensavo che dovevi aggiornare solamente il giorno, il mese e l'anno.

    In questo caso la tua funzione dovrebbe andare bene, c'è solamente il problema che con setTimeout() esegui la funzione passato un tot di tempo, passato quel determinato tot di tempo non la esegui più, invece per eseguirla ogni 1000 secondi dovresti utilizzare la funzione setInterval(), ma dopo dovresti far aggiornare pure la funzione data().

    Io ti consiglio di gestire la data è l'ora il un'unica funzione, almeno puoi utilizzare la funzione setTimeout(), visto che cosi facendo la funzione viene eseguita ogni volta che si esegue la funzione data(), non so se mi sono spiegato.
    Ultima modifica di sevenjeak : 02-09-2012 alle ore 15.03.08

    Sevenjeak
    Software developer and much more

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Ah scusa, pensavo che dovevi aggiornare solamente il giorno, il mese e l'anno.

    In questo caso la tua funzione dovrebbe andare bene, c'è solamente il problema che con setTimeout() esegui la funzione passato un tot di tempo, passato quel determinato tot di tempo non la esegui più, invece per eseguirla ogni 1000 secondi dovresti utilizzare la funzione setInterval(), ma dopo dovresti far aggiornare pure la funzione data().

    Io ti consiglio di gestire la data è l'ora il un'unica funzione, almeno puoi utilizzare la funzione setTimeout(), visto che cosi facendo la funzione viene eseguita ogni volta che si esegue la funzione data(), non so se mi sono spiegato.
    Non ho capito bene la differenza fra setTimeout e setInterval, così si aggiornano in automatico, che cambia se mettevo setInterval?

    Codice HTML:
    //Data italiana
    function data() {
    var now = new Date();
    var giornosett = now.getDay();
    var giorno = now.getDate();
    var mese = now.getMonth(); 
    var anno = now.getFullYear(); 
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago', 'set','ott','nov’,‘dic');
    setTimeout(function() { 
    data() 
    },1000);
    document.getElementById('data').innerHTML = giorno + ' ' + nameMth[mese] + ' ' + anno;
    }
    
    //Ora formato 24 ore
    function startTime() {
    var today = new Date();
    var ora = today.getHours();
    var minuti = today.getMinutes();
    var secondi = today.getSeconds();
    if (ora<=9) { ora='0'+ora; };
    if (minuti<=9) { minuti='0'+minuti; };
    if (secondi<=9) { secondi='0'+secondi; };
    setTimeout(function() { 
    startTime() 
    },1000);
    document.getElementById('ora').innerHTML = ora + ':' + minuti + ':' + secondi;
    }

  8. #8
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Forse è più chiaro qui:

    http://www.html.it/faq/che-differenz...-e-settimeout/

    Ma nel tuo caso fai la stessa cosa, visto che con il setTimeout() richiami la stessa funzione, nel tuo caso non cambia nulla se metti uno o l'altro, dicevo solamente nel caso non avessi inserito la funzione in startTime(), visto che non conoscevo il suo contenuto.
    Ultima modifica di sevenjeak : 02-09-2012 alle ore 18.12.48

    Sevenjeak
    Software developer and much more

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Forse è più chiaro qui:

    http://www.html.it/faq/che-differenz...-e-settimeout/

    Ma nel tuo caso fai la stessa cosa, visto che con il setTimeout() richiami la stessa funzione, io dicevo solamente nel caso non avessi inserito la funzione in startTime(), visto che non conoscevo il suo contenuto.
    Ho visto, ho provato a mettere setInterval ma non funziona

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •