Visualizzazione dei risultati da 1 a 7 su 7

Discussione: gestire timestamp

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    gestire timestamp

    Salve,
    vorrei sapere come poter gestire un'intervallo di 24 ore, nel senso:
    1.invio una query con ip e data(timestamp)

    2.controllo che prima di inserire la prossima query su quell'ip siano passate 24 ore.

    che controlli sul timestamp devo fare?

  2. #2
    Il timestamp è il numero di secondi passato dalla unix epoch (1 gennaio 1970). Per controllare che siano passate almeno 24 ore basta che controlli la differenza fra i due timestamp (deve essere maggiore di 60x60x24).

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    consi fungerebbe?

    Codice PHP:
    ---------------------------------------------------------------
    $scadenza_tempo mktime(date("H")+24,date("i, s, m, d, Y"));
    //ciò viene inserito nel cookie



    ---------------------------------------------------------------

    //qui supponiamo che ho passato il valore memorizzato nel cookie a $scadenza_tempo.

    $tempo_corrente time();
    if(
    $tempo_corrente $scadenza_tempo)
    echo 
    "24 ore passate"
    else
    echo 
    "24 ore non passate" 
    è corretto un controllo del genere o mi sono perso qualcosa?

  4. #4
    [QUOTE]Originariamente inviato da XvOg1
    Codice PHP:
    ---------------------------------------------------------------
    $scadenza_tempo mktime(date("H")+24,date("i, s, m, d, Y"));
    //ciò viene inserito nel cookie 
    La chiamata a mktime() è errata: date(...) ritorna una stringa unica, non una lista di parametri. In realtà la cosa sarebbe molto più semplice se NON usi mktime():

    Codice PHP:
    $scadenza_tempo time() + 60*60*24

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    quindi ciò è diverso?

    Codice PHP:
    //+24 ore
    $scadenza_tempo mktime(date("H")+24,date("i, s, m, d, Y"));  

    //+24 ore
    $scadenza_tempo1 time() + 60*60*24;

    echo 
    $scadenza_tempo."
    "
    ;
    echo 
    $scadenza_tempo1
    eppure stampa la stessa stringa

  6. #6
    E' vero, carajo! Comunque è un caso fortuito, usando il tuo mktime() mi genera un warning:
    codice:
    PHP Notice:  A non well formed numeric value encountered in /home/nicola/tmp/prova2.php on line 3
    Indagando, ho scoperto che qualsiasi argomento di mktime() è opzionale e che se si specifica un valore non valido (come nel tuo esempio) viene considerato il valore di default, cioè la data attuale. Ergo:
    Codice PHP:
    // Questo comando
    $scadenza_tempo mktime(date("H")+24,date("i, s, m, d, Y"));
    // è funzionalmente equivalente al seguente comando (che non genera warnings)
    $scadenza_tempo mktime(date("H")+24); 

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    grazie per il warning, non ho il notice abilitato.
    comunque grazie per il chiarimento.
    ciao

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.