Visualizzazione risultati 1 fino 8 di 8

Discussione: La data sparisce quando aggiorno la pagina, poi riappare

  1. #1
    Guest

    Predefinito La data sparisce quando aggiorno la pagina, poi riappare

    Col mouse se aggiorno la pagina la data sparisce e poi riappare, è possibile fare in modo che non sparisca?

    Codice:
    function data() { 
    var now = new Date();
    var giornosett = now.getDay();
    var giorno = now.getDate();
    var mese = now.getMonth(); 
    var anno = now.getFullYear();
    var nameDay = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab'); 
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
    setTimeout(function() { 
    data() 
    },1000);
    document.getElementById('data').innerHTML =  nameDay[giornosett] + ' ' + giorno + ' ' + nameMth[mese] + ' ' + anno + ', ';
    }
    …
    <body onload="data()">
    <span id="data"></span>
    Ultima modifica di photoman : 22-12-2014 alle ore 11.45.24

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Ho provato e a me non sparisce. Probabilmente perché sto provando in locale, e la pagina si carica istantaneamente (e quindi viene richiamata istantaneamente la funzione data()). Comunque, prova a modificare lo span in questo modo (mantenendo tutto il resto; se poi funziona, le variabili costanti direi di definirle fuori per non definirle più volte):
    Codice HTML:
    <span id="data"><script type="text/javascript">
    var now = new Date();
    var giornosett = now.getDay();
    var giorno = now.getDate();
    var mese = now.getMonth(); 
    var anno = now.getFullYear();
    var nameDay = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab'); 
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
    document.write(nameDay[giornosett] + ' ' + giorno + ' ' + nameMth[mese] + ' ' + anno + ',&nbsp;');</script></span>
    (oppure puoi scriverlo tramite PHP alla generazione della pagina, come ho visto che stai cercando di fare nella sezione PHP. Tieni però presente che PHP fornisce l'orario server, mentre JS quello client).

    Ciao!
    Ultima modifica di alemoppo : 22-12-2014 alle ore 18.38.43

  3. #3
    Guest

    Predefinito

    Ho letto anche la tua risposta in php. Ho risolto con un misto js e php in questo modo.

    Codice:
    //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 nameDay = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab'); 
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
    setTimeout(function() { 
    data() 
    },1000); //Scatta ogni secondo
    document.getElementById('data').innerHTML =  nameDay[giornosett] + ' ' + giorno + ' ' + nameMth[mese] + ' ' + anno + ',&nbsp;';
    }
    
    //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); //Scatta ogni secondo
    document.getElementById('ora').innerHTML = ora + ':' + minuti + ':' + secondi;
    }
    …
    <?php
    setlocale(LC_TIME, 'ita', 'it_IT.utf8');
    $giorni = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
    $mesi = array('', 'gen','feb','mar','apr','mag','giu','lug', 'ago','sett','ott','nov','dic');
    list($sett,$giorno,$mese,$anno) = explode('-',date('w-d-n-Y, H:i:s'));
    ?>
    <!--Il codice si trova in script.js--> 
    <span id="data"><?php echo $giorni[$sett],' ',$giorno,' ',$mesi[$mese],' ',$anno; ?></span><span id="ora"></span>

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Intendevo così:
    Codice:
    function data() { 
    var now = new Date();
    var giornosett = now.getDay();
    var giorno = now.getDate();
    var mese = now.getMonth(); 
    var anno = now.getFullYear();
    var nameDay = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab'); 
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
    setTimeout(function() {
    var now = new Date(); 
    var ora = ((ora = now.getHours())<= 9)?'0'+ora:ora;
    var minuti = ((minuti = now.getMinutes())<= 9)?'0'+minuti:minuti;
    var secondi = ((secondi = now.getSeconds())<= 9)?'0'+secondi:secondi;
    document.getElementById('data').innerHTML =  nameDay[giornosett] + ' ' + giorno + ' ' + nameMth[mese] + ' ' + anno + ' '+ora+' '+minuti+' '+secondi+',&nbsp;';
    data() 
    },1000);
    }
    Codice PHP:
    <?php
    setlocale
    (LC_TIME, 'ita', 'it_IT.utf8');
    $giorni = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
    $mesi = array('', 'gen','feb','mar','apr','mag','giu','lug', 'ago','sett','ott','nov','dic');
    list(
    $sett,$giorno,$mese,$anno,$ora,$minuti,$secondi) = explode('-',date('w-d-n-Y-H-i-s'));
    ?>
    <!--Il codice si trova in script.js-->
    <span id="data"><?php echo $giorni[$sett],' ',$giorno,' ',$mesi[$mese],' ',$anno, ' ',$ora,' ',$minuti,' ',$secondi; ?></span>
    La date() nel modo che hai fatto te non ha molto senso perché l'explode non spezza tutto. Comunque non ho capito perché non hai usato direttamente echo date(), ma ok.

    Ciao!
    Ultima modifica di alemoppo : 22-12-2014 alle ore 19.08.08

  5. #5
    Guest

    Predefinito

    Ho provato il tuo codice, ma i secondi non sono dinamici, data-ora si aggiorna quando ricarico la pagina. Il mio lo fa e in più non spariscono.
    www.gruppoalveo.it

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    A me funziona bene, ma se il tuo ti funziona, ok. Però la date() non è un granché, a sto punto rimettila come prima.

    Il codice completo e unito di quella pagina è:
    Codice PHP:
    <html>
    <head>
    <script>
    function data() {
    var now = new Date();
    var giornosett = now.getDay();
    var giorno = now.getDate();
    var mese = now.getMonth();
    var anno = now.getFullYear();
    var nameDay = new Array('Dom','Lun','Mar','Mer','Gio','Ven','Sab');
    var nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic');
    setTimeout(function() {
    var now = new Date();
    var ora = ((ora = now.getHours())<= 9)?'0'+ora:ora;
    var minuti = ((minuti = now.getMinutes())<= 9)?'0'+minuti:minuti;
    var secondi = ((secondi = now.getSeconds())<= 9)?'0'+secondi:secondi;
    document.getElementById('data').innerHTML = nameDay[giornosett] + ' ' + giorno + ' ' + nameMth[mese] + ' ' + anno + ' '+ora+' '+minuti+' '+secondi+',&nbsp;';
    data()
    },1000);
    }
    </script>
    </head>
    <body onload="data()">
    <span id="data"><?php
    setlocale
    (LC_TIME, 'ita', 'it_IT.utf8');
    $giorni = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
    $mesi = array('', 'gen','feb','mar','apr','mag','giu','lug', 'ago','sett','ott','nov','dic');
    list(
    $sett,$giorno,$mese,$anno,$ora,$minuti,$secondi) = explode('-',date('w-d-n-Y-H-i-s'));
    echo
    $giorni[$sett],' ',$giorno,' ',$mesi[$mese],' ',$anno, ' ',$ora,' ',$minuti,' ',$secondi; ?></span>
    </body>
    </html>
    Ciao!
    Ultima modifica di alemoppo : 22-12-2014 alle ore 19.38.31

  7. #7
    Guest

    Predefinito

    Il tuo può anche andar bene, ma mi funziona quando appare la virgola alla fine dei secondi

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Prima no? Nemmeno nella mia pagina?
    Comunque boh, se il tuo va bene usa il tuo . Però la date sarebbe meglio rimetterla
    Codice:
    date('w-d-n-Y')
    EDIT:
    Ah, no, scusami, forse ho capito cosa hai fatto. Ok, direi che va bene anche il tuo anche se il codice è lunghino :P

    Ciao!
    Ultima modifica di alemoppo : 22-12-2014 alle ore 19.58.48

Regole di scrittura

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