Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23

    mktime, problemi con i secondi

    Devo far partire un countdown in javascript. Per far in modo che il conto alla rovescia duri un'ora, uso queste righe:
    Codice PHP:
    $fine mktime(date("H")+1,date("i"),date("s"),date("m"),date("d"),date("Y"));
    $fine date("Y/m/d H:i:s"$fine); 
    E poi passo la variabile $fine alla funzione javascript. In realtà, però, ci sono sempre circa 5-6 secondi in più. Come è possibile?

  2. #2
    Cosa intendi con "ci sono circa 5-6 secondi in più" ?
    Se intendi che c'è una asimmetria tra la scadenza del contatore ed il tempo effettivo potrebbe dipendere dal browser, se questo è MSIE soprattutto, che già se calcola e visualizza i centesimi di secondo si impalla in modo penoso...

    Con Firefox invece questo tipo di asimmetria a me non è mai successo, tutto coincide perfettamente.
    Se è così prova con Firefox.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23
    Uso Firefox. Con "ci sono circa 5-6 secondi in più" intendo dire che il contatore invece di partire da 01:00:00, parte da 01:00:05. Stessa cosa se faccio un countdown di un minuto, 5 minuti, ecc. quindi pare che non dipenda dal tempo totale.

    Ovviamente ho preventivamente testato il codice javascript, inserendo manualmente una data, e funziona perfettamente cioè non ci sono secondi in più.

  4. #4
    Capisco, allora dovresti postare uno stralcio di codice (javascript) altrimenti è impossibile (per me) cercare di localizzare la causa.
    Però questo non è il forum giusto.

    Inoltre puoi semplificare il codice php:
    Codice PHP:
    $fine date("Y/m/d H:i:s"time() + 3600); 
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23
    Ho usato il tuo codice semplificato, ma il problema rimane.
    Ho postato in questa sezione perchè come dicevo prima, il codice in js funziona impostando la data manualmente. Comunque, ho scritto il codice js qui: http://forum.html.it/forum/showthrea...readid=1116968

  6. #6
    ma se un conto alla rovescia deve durare un'ora ... che te ne fai di una data/ora?

    parti con il count-down da 3600 secondi e quando sarai a zero sara' passata un'ora a prescindere dall'ora di inizio.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23
    Quello è un esempio, mi servono countdown anche di parecchie ore.

  8. #8
    Originariamente inviato da davser
    Quello è un esempio, mi servono countdown anche di parecchie ore.
    lo puoi fare anche di giorni.... ma un count-down e' un timer a prescindere da data-ora di fine.

    Altrimenti devi definire giorno-ora del termine e mettere un contatore che incrementi fino alla data-ora prevista in cui deve stoppare od eseguire un evento. Ma non un count-down che e' "sempre" a prescindere dall'ora di fine. Occhio poi che ad ogni restart (F5) del browser il tuo count-down viene azzerato e ricomincia da capo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    23
    La data finale viene prelevata dal database, quindi se viene ricaricata la pagina non c'è nessun problema
    Resta comunque il fatto che lo script js funziona se setto data e orario finale manualmente, se invece lo imposto in quel modo mi aggiunge quei secondi...

  10. #10
    Originariamente inviato da davser
    La data finale viene prelevata dal database, quindi se viene ricaricata la pagina non c'è nessun problema
    Resta comunque il fatto che lo script js funziona se setto data e orario finale manualmente, se invece lo imposto in quel modo mi aggiunge quei secondi...
    evidentemente non mi sono spiegato.

    Invece di fare un count-down, fai un count-up....

    Se la data/ora che prelevi non ha i minuti e i secondi a zero, troverai sempre delle differenze perche ' il tuo count-down (ho visto nel forum js) parte da ore/min/sec = 00:60:00 mentre i ore/min/sec nella data del db come sono???? magari sono per esempio 02:10:35 e non ti quaglieranno mai.

    Dipende comunque sempre da quello che vuoi fare. Se dovessi gestire un tempo accreditato di account, contano i minuti residui a disposizione e quindi dato un val max sul db disponibile, questo valore dovra' rappresentare il tempo totale di connessione ed il count-down basarsi su questo. A termine connessione andra' aggiornato il consumo oppure andra' interrotta la connessione al raggiungimento del valore zero. Vedi il comportamento dei cellulari.

    il valore che ti trasferisce il db e' quello che e' al lordo del tempo di download della pagina dal server al client.

    Vedi tu...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.