Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463

    php problema confronto 2 date

    ciao ragazzi son di nuovo qui . . . ho un problema grosso

    devo confrontare 2 date una presa dal database e una quella odierna . . . devo controllare che siano passati 7 giorni e se sono passati mandare un email

    non riesco proprio sto sclerando .. . ho provato a convertire le due date in giorni e calcolare la differenza ma nulla l' if mi ignora i numeri negativi . . .

    vio posto il codice scritto:

    <?php
    if(!$dbconnect =mysql_connect("localhost","root","")) {
    echo "Connection failed to the host 'localhost'.";
    exit;
    } // if
    if (!mysql_select_db('bigmat')) {
    echo "Cannot connect to database 'test'";
    exit;
    } // if

    $sql="select brikko.codiceid, brikko.stato, statisticheconnessioni.fine from brikko, statisticheconnessioni where stato = 'non connesso' and brikko.chiave = statisticheconnessioni.brikko";
    $res=mysql_query($sql);
    $num=mysql_num_rows($res);
    $giorni=0;
    while ($arrayFam=mysql_fetch_array($res))
    {
    $anno = substr($arrayFam["fine"],0,4);
    $mese = substr($arrayFam["fine"],5,2);
    $giorno = substr($arrayFam["fine"],8,2);
    // calcolo la differenza tra il timestamp della data definita e la data attuale
    // il risultato dovrò dividerlo per 86400 (il numero di secondi in un giorno)
    // e arrotondarlo per difetto con ceil (vedi ultima linea di codice)
    $giorni = ((mktime (0,0,0,$mese,$giorno,$anno) - time())/86400);

    // qui stampo giorni o giorno a seconda se la differenza è composta da 1 giorno o più giorni
    // funziona anche con i numeri negativi
    $pluraleosingolare = ((ceil(abs($giorni)>1)) or ceil($giorni)==0)?"giorni":"giorno";

    echo "tra la data di oggi e la data del $giorno/$mese/$anno la differenza è di ".ceil($giorni)." $pluraleosingolare";

    $body="";

    $giorni= $giorni*1;

    if($giorni <= "-7"){

    $sql="select brikko.codiceid, brikko.stato, statisticheconnessioni.fine from brikko, statisticheconnessioni where stato = 'non connesso' and brikko.chiave = statisticheconnessioni.brikko";
    $res=mysql_query($sql);
    $num=mysql_num_rows($res);
    while ($arrayFam=mysql_fetch_array($res))
    {
    $stringa = "<html>Brikko sconnesso da 1 settimana.
    nome brikko: ".$arrayFam["codiceid"]."
    sconnesso da: ".$arrayFam["fine"]."
    stato connessione: ".$arrayFam["stato"]."


    </html>";
    $stringa = eregi_replace("[\]",'',$stringa);
    $body .= $stringa;
    }

    //invio la mail di avviso
    //$mailDoors_from = "bigmat@webworking.it";


    }

    echo $giorni;

    }

    $mailDoors_from = "izzusan@libero.it";


    $mailDoors_subject = "Brikko sconnesso da 1 settimana";
    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
    $headers .= "From: Bigmat Channel <$mailDoors_from>\nReply-To: $mailDoors_from\n";

    $headers .= "Content-type: text/html;";


    //$dest="cvisca@webworking.it";

    $dest="izzusan@libero.it";



    mail ($dest, $mailDoors_subject, $body, $headers);


    ?>

    mi deve mandare l'email solo con le date dove sono passati 7 o piu' gorni help

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    12
    Scusa ma la differenza tra le date è esatta ???

    Il tuo unico problema è che non funziona l'if con numeri negativi ???

    Se così fosse basterebbe invertire i valori da sottrarre.

    $giorni = (time())/86400 - (mktime (0,0,0,$mese,$giorno,$anno) );

    Anche perché logicamente la data odierna sarà sempre > o = alla data del timestamp preso dal db, e mai minore, quindi così facendo avresti sempre differenze > o = a zero.

  3. #3
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    si hai ragione io ho risolto in una maniera + contorta facendo il not della variabile

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.