Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Intervallo fra date

  1. #1

    Intervallo fra date

    Salve a tutti, dovrei calcolare, dopo aver inserito la data di iscrizione, un lasso di tempo di 5 anni da quella data, in modo che se è l'iscrizione è avvenuta almeno 5 anni prima venga visualizzato un segno che lo testimoni... il codice che ho trovato è il seguente:

    <?
    $lasso =0;
    if($row['pro_dataiscr'] != "0000-00-00")
    {
    $past = explode("-", $row['pro_dataiscr']);
    $passato = mktime(0, 0, 0, $past[2], $past[1], $past[0], 0);
    $oggi = mktime(0, 0, 0, $now['mday'], $now['mon'], $now['year'], 0);
    $lasso = ($oggi - $passato)/(60*60*24*365);
    //echo $lasso;
    }
    if($row['pub_dataiscr'] != "0000-00-00")
    {
    $past = explode("-", $row['pub_dataiscr']);
    $passato = mktime(0, 0, 0, $past[2], $past[1], $past[0], 0);
    $oggi = mktime(0, 0, 0, $now['mday'], $now['mon'], $now['year'], 0);
    $lasso = ($oggi - $passato)/(60*60*24*365);
    //echo $lasso;
    }



    if($lasso > 5){
    print "<img src=\"immagini/verde.jpg\" width=\"15\" height=\"15\" border=\"0\" title=\"";

    print "\">";
    }
    ?>
    ma non funge... qualcuno può aiutarmi?

  2. #2
    codice:
    SELECT *, if(year(now()) - year(data) >= 5, 1, 0) as lasso
    FROM tabella
    
    e poi
    
    if($row['lasso'] == 1) {
    print "<img src=\"immagini/verde.jpg\" width=\"15\" height=\"15\" border=\"0\" title=\"";

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

  3. #3
    ma in questo modo calcola la differenza anche considerando mesi e giorni? Scusa ma non sono ferratissima ...

  4. #4
    calcola la sola differenza degli anni senza tener conto di mesi e giorni. Un po' troppo massimalista .

    Per rendere la cosa compatibile con tutte le versioni di mysql meglio usare il php. Adatta la seguente funzione che serve per calcolare l'eta' in anni.

    Codice PHP:

    function compleanno($temp)
    {
      
    $temp explode("-",$temp);
      
    $oggi explode("-",date("Y-m-d"));
      if (
    $oggi[1] > $temp[1])
      return 
    $oggi[0] - $temp[0];
                  elseif (
    $oggi[1] >= $temp[1] && $oggi[2] >= $temp[2])
                  return 
    $oggi[0] - $temp[0];
                        else
                        return 
    $oggi[0] - $temp[0] - 1;
       }

    echo 
    compleanno("1990-11-08"); 

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

  5. #5
    ok, sembra adatta, calcola esattamente gli anni trascorsi, ma ora ti prego aiutami a collocare la condizione secondo la quale se sono trascorsi almeno 5 anni a video si vede l'immagine...

    function compleanno($temp)
    {
    $temp = explode("-",$temp);
    $oggi = explode("-",date("Y-m-d"));
    if ($oggi[1] > $temp[1])
    return $oggi[0] - $temp[0];
    elseif ($oggi[1] >= $temp[1] && $oggi[2] >= $temp[2])
    return $oggi[0] - $temp[0];
    else
    return $oggi[0] - $temp[0] - 1;
    }

    echo compleanno($row['pro_dataiscr']);

    dove devo mettere la riga sotto, sempre se è giusta la sintassi...

    if(compleanno > 5){
    print "<img src=\"immagini/verde.jpg\" width=\"15\" height=\"15\" border=\"0\" title=\"";

    print "\">";

  6. #6
    per gentilezza, usa i tag [php ] o [code ] per racchiudere il codice.

    Codice PHP:
    $value =  compleanno($row['pro_dataiscr']);

    if(
    $value  >=  5) {
    print 
    "<img src=\"immagini/verde.jpg\" width=\"15\" height=\"15\" border=\"0\" title=\"";

    print 
    "\">"
    tieni presente >= perche' se il valore e' = 5 significa che gli anni sono passati.

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

  7. #7
    scusa per i tag, ti ringrazio tantissimo, ora è ok

  8. #8
    scusami ancora, se volessi utilizzare due diverse date di iscrizione, della serie se la data iscrizione 1 è maggiore di 5 anni oppure la data di iscrizione 2 è maggiore di 5 anni stampa a video l'immagine potresti verificare se stò procedendo nella giusta strada?

    Codice PHP:

    <? 
            $lasso 
    =0;
            function 
    compleanno($temp
              { 
      
    $temp explode("-",$temp); 
      
    $oggi explode("-",date("Y-m-d")); 
      if (
    $oggi[1] > $temp[1]) 
      return 
    $oggi[0] - $temp[0]; 
                  elseif (
    $oggi[1] >= $temp[1] && $oggi[2] >= $temp[2]) 
                  return 
    $oggi[0] - $temp[0]; 
                        else 
                        return 
    $oggi[0] - $temp[0] - 1
       
    //echo compleanno;
       


    $value =  compleanno($row['pro_dataiscr']); 
    $value1 =  compleanno($row['pub_dataiscr']);

    if(
    $value  >=  5){ 
    //echo $compleanno;
    }
    elseif(
    $value1  >=  5){  

    print 
    "<img src=\"immagini/verde.jpg\" width=\"15\" height=\"15\" border=\"0\" title=\""

    print 
    "\">";
    }


                    
                    
                    
    ?>

  9. #9
    qualcuno può aiutarmi

  10. #10
    Originariamente inviato da lory2
    qualcuno può aiutarmi
    non spieghi se deve stampare entrambe le date oppure solo la prima.
    con if ..elseif se e' true l'if la seconda condizione in elseif viene saltata.

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