Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105

    pagina con scadenza - dubbio sul timestamp

    Salve a tutti.
    Vi espongo brevemente il mio dubbio.

    Sto impostando una pagina con un form per l'inserimento di dati. Tali dati non possono essere inseriti dopo la data/ora di scadenza. Ho costruito il seguente script per controllare che i dati vengano inseriti prima della scadenza.

    Codice PHP:
    $scadenza=mktime($ore$min0$mes$gio$ann);/*ho inserito la data di scadenza tramite un form per fare delle prove*/
        
    $consegna=time();//è l'ora in cui invio i dati
        
    if($consegna>$scadenza){//quindi se il timestamp della consegna è maggiore/posteriore
        
    $diff=$consegna-$scadenza;//calcolo la differenza
        
    echo"Non puoi pi&ugrave inserire dati. Il tempo &egrave scaduto da ".date("H \\o\\\r\\e i \\m\\i\\\n s \\s\\e\\c"$diff).
    \n"

    Quindi la differenza -considerato che il ritardo nell'invio è sempre nell'ordine di qualche minuto- consiste in un timestamp molto basso, al massimo di qualche ora seguente all'istante zero.
    Io stampo a video solo H i s (ultima riga del codice). Secondo il mio ragionamento, se inserisco i dati con 10 min di ritardo ottengo come valore di $diff il timestamp di mezzanotte e dieci del 1/1/70. Quindi il messaggio di errore dovrebbe essere
    "Il tempo è scaduto da 00 ore 10 min 00 sec"
    Fermo restando che il meccanismo in sé funziona, mi sono accorto che nel messaggio di errore viene conteggiata un'ora in più rispetto a quella che mi aspettavo (nel caso di sopra 01 ore 10 min).
    Da dove vengono questi 3600 secondi non preventivati? :master:

    Grazie a tutti, ciao!

  2. #2

    Re: pagina con scadenza - dubbio sul timestamp

    Originariamente inviato da tziggie
    Fermo restando che il meccanismo in sé funziona, mi sono accorto che nel messaggio di errore viene conteggiata un'ora in più rispetto a quella che mi aspettavo (nel caso di sopra 01 ore 10 min).
    Da dove vengono questi 3600 secondi non preventivati? :master:

    Grazie a tutti, ciao!
    non credo tu possa fare questo calcolo. il risultato che ottieni e' un valore in secondi. Se lo consideri come un unix timestamp verra' applicato su la differenza del fuso orario e dell'eventuale ora legale.

    Dovresti considerare il valore di $diff come assoluto e calcolare su questo le ore, minuti ed i secondi.

    ti posto un esempio per il calcolo dell'orario a partire da due data/ora.
    Codice PHP:
    function oreSubs($ora_M$ora_m) {

    $diff $ora_M $ora_m;
    $ore floor($diff / (60*60));
    $minuti = ($diff 60) % 60;
    $p "$ore:$minuti:".($diff 60);

    return  
    $p;
    }

    $ora_M mktime(12,10,30682007); // data maggiore
    $ora_m mktime(10,15,00682007); // data minore

    echo oreSubs($ora_M$ora_m); 

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

  3. #3
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    non credo tu possa fare questo calcolo. il risultato che ottieni e' un valore in secondi. Se lo consideri come un unix timestamp verra' applicato su la differenza del fuso orario e dell'eventuale ora legale.
    Giusto. E te pareva, mi verrebbe da aggiungere.
    Grazie piero.mac, ci sei sempre quando ho bisogno di aiuto.

    In effetti la strada che avevo intrapreso all'inizio era quella. Cercare una funzione che mi restituisse H i s a partire da un timestamp. Poi ho pensato che dato il basso valore potevo calcolare l'orario del 1/1/70. Ma non avevo pensato a questi semplici inghippi.

    Grazie per aver scritto la funzione!
    A presto, tz

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    25
    Mi intruffolo nel topic per chiedere una cosa:
    come riesco ad ottenere un countdown tra due date in formato "giorni, ore , minuti"?
    Sono proprio "de coccio", abbiate pazienza

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