Visualizzazione risultati 1 fino 22 di 22

Discussione: funzione time();

  1. #1
    Guest

    Predefinito funzione time();

    Salve, ho provato ad usare la funzione time(); che porta come risultato il tempo (in secondi mi pare) trascorsi dal 1 gennaio 1970 (così ho letto). Io vorrei salvare il valore nel db come integer o comunque manipolarlo come numero, ma sembra che non melo riconosca come integer.

    Forse dipende dal fatto che è troppo lungo? oppure ci vuole una formattazione

  2. #2
    Guest

    Predefinito

    imposta il campo come TIMESTAMP nel DB ;)

    Bye.

  3. #3
    Guest

    Predefinito

    E per manipolarlo come integer?

  4. #4
    Guest

    Predefinito

    Ma lo vuoi manipolare da sql o da php?
    Da php lo dovrebbe riconoscere automaticamente come integer; da sql anche ma non ho mai provato, e poi dipende da cosa ci vuoi fare.


    Ciaoooo!!!!

  5. #5
    Guest

    Predefinito

    In php. Comunque dovrei fare dei controlli temporali per delle piccole sessioni..

  6. #6
    Guest

    Predefinito

    Bhe, il numero restituito è cmq il numero di secondi trascorsi dal 1/1/1970, quindi basta trattarli come tali (secondi) e puoi fare tutte le operazioni (temporali) che vuoi.

    Per esempio se vuoi far durare un cookie un'ora fai:

    setcookie("biscotto","buono",time()+3600);

    3600 secondi = 1 ora
    e così via.


    Ciaoooooo!!!!!

  7. #7
    Guest

    Predefinito

    Si, quello lo sapevo già fare, però mi serve un contatore d tempo serverside, perchè a determinati intervalli le pagine cambiano

  8. #8
    Guest

    Predefinito

    Ehm... a sto punto non ti capisco più, spiega per benino cosa vuoi fare, magari riusciamo ad aiutarti di più.


    Ciaoo!!!

  9. #9
    Guest

    Predefinito

    E' una sorta di comunicazione tra le persone online. 2 utenti registrati possono inviarsi un messaggio e se l'altro non lo legge entro X minuti si autocancella. Serve quindi il contatore di tempo interno per stabilire dopo quanto si cancelli.

  10. #10
    Guest

    Predefinito

    Non fai prima a fare una semplice sottrazione?

    $timeattuale = time();
    $tempo_trascorso = $timeattuale - $timestampDB;
    $tempo_max = 60 * 10 //Tempo max di 10 min, pari a 600 secondi

    if($tempo_trascorso < $tempo_max) {
    echo "puoi leggere il mex ;)";
    else {
    echo "Troppo tardi :(";
    }

    Non credo sia difficile :)

    Bye.

  11. #11
    Guest

    Predefinito

    mmmm sorvolo sulla funzionalità e utilità della cosa (se vuoi ti spiego perchè), potresti fare qualcosa del genere:

    if($timedelmsg<(time()-3600)){
    //query DELETE del messaggio
    }

    dove $timedelmsg è il time stamp del messaggio.
    Questo esempio banale cancella il messaggio in questione dal db in caso sia stato inviato più di un'ora prima.


    Ciaoooooo!!!!!

  12. #12
    Guest

    Predefinito

    Bè, ovviamente messo così non è che appare molto utile..

    Io comunque ho provato a fare così

    Codice PHP:
    $datacorrente = time();
    $temposcadenza = $datacorrente - 300; //scade se non lo leggi entro 5 minuti
    //preleva i messaggi inviati prima di 5 minuti
    $result = mysql_query("SELECT messaggi FROM $tabella WHERE datainvio.$tabella >'$temposcadenza' ",$db);
    $messaggi = mysql_num_rows($result);

    // stampa dei messaggi...
    Mi si blocca a $temposcadenza = $datacorrente - 300;
    Ultima modifica di harryweb : 03-11-2005 alle ore 21.17.43

  13. #13
    Guest

    Predefinito

    che vuol dire ti si blocca? Messaggio di errore? O cosa?

    Cmq se la query non va prova così:

    SELECT messaggi FROM $tabella WHERE datainvio.$tabella >$temposcadenza

    (senza quote per $temposcadenza)


    Ciaoooooo!!!!!

  14. #14
    Guest

    Predefinito

    Adesso funziona la sottrazione di temposcadenza. Però non mi visualizza nè il numero dei messaggi e nè i messaggi.

  15. #15
    Guest

    Predefinito

    Forse proprio perchè funziona non ti visualizza i messaggi :D, perchè magari è trascorso il tempo utile!
    Prova a stampare il risultato della sottrazione; prova a stampare la query (la metti in una var); prova a querare da phpmyadmin oppure prova a mettere un
    or die(mysql_error());


    Ciaoooooo!!!!!

  16. #16
    Guest

    Predefinito

    Ho provato aggiungendo il die, mi compare questo errore: Unknown table 'datainvio' in where clause
    Eppure la tabella esiste, non ci sono campi lasciati vuoti..

  17. #17
    Guest

    Predefinito

    Ma il nome della tabella qual'è??
    Prima non mi ero accorto di questo errore, così è giusto:

    SELECT messaggi FROM datainvio WHERE $tabella >$temposcadenza

    assicurati che $tabella prenda il valore del campo (sempre se ho interpretato bene cosa avevi scritto).


    Ciaoooooo!!!!

  18. #18
    Guest

    Predefinito

    No, è il contrario.. datainvio è il campo e $tabella il nome della tabella (archy)...

  19. #19
    Guest

    Predefinito

    Allora ti basta invertire...


    Ciaooo!!

  20. #20
    Guest

    Predefinito

    Azz, ma io sapevo che si metteva prima il campo.. :O

    Cmq adesso funziona, grazie 1000 ;)


    EDIT: la funzione include funziona con le query? (es: main?azione=msg )
    Ultima modifica di harryweb : 05-11-2005 alle ore 15.31.51

  21. #21
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da harryweb
    Azz, ma io sapevo che si metteva prima il campo.. :O
    Inverti il maggiore con il minore.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  22. #22
    Guest

    Predefinito

    No, guarda che è corretto così. Sottraggo i 300 all'ora corrente (5 minuti) e se l'ultima data memorizzata è superiore (quindi compresa tra i 5 minuti) può passare.

    Adesso ho il problema dell'include, non c'è qualche funzione analoga che permetta le query?

Regole di scrittura

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