Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    differenza in giorni tra due date

    ciao raga

    non riesco a trovare la differenza in giorni tra due date:

    ho il campo data che viene registrato con CurrentDate(), quindi vorrei trovare i giorni che ci sono da ora alla data registrata:

    Codice PHP:
    <?php
    $datareg
    =$row["date"];
    $datacorrente CurrentDate();
    $date=($datacorrente $datareg);
    if (
    $date >= 7) { echo "$date";
    ?>
    è sbagliato, ma come risolvo?
    grazie

  2. #2
    devi postare l'errore se vuoi un aiuto

    comunque manca un }

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    che funzione e' currentDate() ???

    io cmq ti consiglio di controllare bene i formati. Sai che puoi avere il formato timestamp , date e dateTime UNIX, formato GMT etc....

    Dipende come hai salvato i dati sul db.
    Da canto mio salverei su db la timestamp e poi mi farei dare la ts attuale quindi fai

    gap = 7*24*60*60;
    // giorni*ore*minuti*secondi = valore in secondi di 7 giorni.
    // le timestamp sono dei long int che rappresentano i sec per cui sei apposto.
    // cosi' puoi controllare fino al secondo.

    if ( (ts_ora - ts_reg) > gap )
    /*e' passato troppo tempo */
    else
    /* il periodo e' ancora valido */

  4. #4
    ho la data in questo formato:

    2008-10-25, usato il currentdate() per salvarlo nel database...

    quindi vorrei fare:

    2008-11-02 - 1008-10-25 = trovare i giorni passati

  5. #5
    la data la devi salvare sempre nel formato unix cioè quello che ti restituisce la funzione php.net/time

  6. #6
    Hai diverse opzioni, nella SELECT sul campo date puoi aggiungere TIMESTAMP()
    codice:
    SELECT TIMESTAMP(campo_data)...
    e poi fai la sottrazione con il risultato della funzione time() in php, in questo modo hai i secondi di differenza, con delle semplici operazioni puoi ottenere i giorni, altrimenti puoi utilizzare direttamente DATEDIFF() di mysql


  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    e' una sol e cmq il formato data che ha e' in formato date di mysql ..... da quella si puo' creare la ts senza troppi problemi con una explode e una mktime.
    tipo

    $data = "2008-10-02";

    $tokens= explode("-" , $data );

    if( checkdate( $tokens[1] , $tokens[2] , $tokens[0]) )
    {
    $ts = mktime( "00" , "00" , "01" , $tokens[1] , $tokens[2] , $tokens[0]) ;
    }
    else
    echo "DATA NON VALIDA";
    Et voila' hai la timestamp.
    Ioltre puo' usare la funzione checkdate per controlla che la data passata sia effetvimanente esistente( il 30 febbraio per esempio non e' una data valida).

  8. #8
    Si può far tutto direttamente da MySql, la funzione è UNIX_TIMESTAMP() non TIMESTAMP() come ho scritto prima, questa funzione verifica anche che la data sia valida, altrimenti restituisce 0
    codice:
    SELECT UNIX_TIMESTAMP(campo_data)

  9. #9
    Originariamente inviato da clickfantasy
    ho la data in questo formato:

    2008-10-25, usato il currentdate() per salvarlo nel database...

    quindi vorrei fare:

    2008-11-02 - 1008-10-25 = trovare i giorni passati
    codice:
    select DATEDIFF('2008-11-02', '2008-10-25') as day_diff
    from tabella

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

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    SI ok che si puo' fare da mysql, ma qlke controllino preventivo ti evita di fare le query dve magari le date sono non valide o fuori range o cosa tutto la.

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.