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

Discussione: Aggiungere data..

  1. #1

    Aggiungere data..

    Buon giorno, dovrei aggiungere 30 gg ad una data estrapolata da DB.
    Dopo aver aggiunto questi 30gg, dovrei sottrarre una data che mi indica la scadenza..
    Quello che faccio è questo:

    codice:
    //$DataEsito -> estrapolata da DB
    list($anno,$mese,$giorno) = explode("-", $DataEsito); 
    list($ore,$minuti,$secondi) = explode(":", $HhScad); 
    $dataDB=mktime($ore,$minuti,0,$mese,$giorno,$anno);
    
    //Non so se è corretto
    $aggiungiData = mktime(30);
    
    $dateSommate = floor($dataDB + $aggiungiData) . "
    ";
    $dataOggi = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
    
    $differenza = floor(($dataOggi - $dateSommate)/(60*60*24)); // hai la differenza in giorni
    echo "Differenza: " . $differenza ."
    ";
    Mi dite se è corretto questo procedimento?Grazie mille....

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    19
    Ti posso dire come avrei fatto io prendendo spunto dal tuo codice:

    $dataDB=mktime($ore,$minuti,0,$mese,$giorno,$anno, 0);
    $aggiungi_data=30*24*60*60;
    $dateSommate = $dataDB + $aggiungiData;
    $dataOggi = mktime(date("H"),date("i"),date("s"),date("m"),dat e("d"),date("Y"));
    $differenza = ($dataOggi - $dateSommate);
    $differenza_in_giorni=$differenza/(24*60*60);

    Spero di esserti stata d'aiuto e di non aver frainteso qualcosa.

    P.S. io non mettere il floor quando operi su una UNIX timestamp perchè secondo me non è necessario.

  3. #3
    quindi, questa porzione,
    codice:
    $aggiungi_data=30*24*60*60;
    //questo è il valore:  2592000
    mi indica i 30gg che devo aggiungere alla data estrapolata da DB.

    Comunque non mi aggiunge niente perchè la data da DB è questa:
    codice:
    //data DB
    list($anno,$mese,$giorno) = explode("-", $DataEsito); 
    list($ore,$minuti,$secondi) = explode(":", $HhScad); 
    //mi restituisce questo valore: 1173265200
    //quella da aggiungere è quest'altra
    $aggiungi_data=30*24*60*60;
    //questo è il valore:  2592000
    $dateSommate = $dataDB + $aggiungiData;
    /*il risultato è questo: 1173265200
    ma in pratica, non ha sommato nulla, in quanto mi restituisce il primo valore estrapolato da DB*/
    Potresti aiutarmi ancora per favore?Grazie mille...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    19
    qual'è il formato di $DataEsito e $HhScad?

    Per maggiore sicurezza ho riprovato la porzione di codice che già in precedenza avevo usato ma funziona correttamente. Penso sia un problema del formato della data e delle ore che gli passi.

  5. #5
    ascolta, tutto ok, ho dovuto fare una modifiche in questo modo:
    codice:
    $dateSommate = $dataDB + (30*24*60*60);
    Adesso fa somme,differenza etc etc

    Però, come posso controllare la differenza?
    Nel senso, come posso dirgli se è maggiore o uguale a 0, fai questo?
    Io faccio cosi:
    codice:
    if ($TpUte == "UE" && $StatoBando=="Ap77" && $differenza_in_giorni>=0){//aggiungere controllo su Utente
    //echo $CcdBando;
    break;
    }
    E' corretto fare cosi?Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    19
    credo proprio di sì. Almeno io farei così.

    Ti consiglio di provare prima con vari casi così guardi se il sistema funziona alla perfezione.

    Cmq il codice è giusto

    Anja

  7. #7
    scusami, un'ultima cosa, perchè sto diventando scemo più di quello che sono.

    Dovrei fare un controllo che mi disabilita la visione online di alcuni record ma, non per uno.
    I parametri per non visualizzare online sono questi:
    Se il tipo di utente è esterno ed lo stato dell'articolo ha questo codice Ap77, non si devono vedere..
    In pratica faccio cosi:
    codice:
    if ($TpUte == "UE" && $StatoBando=="Ap77" && $differenza_in_giorni>=0){
    break;//per stoppare, la visualizzazione
    }
    Però, dovrebbe visualizzarmene uno anche se ha lo stato con il codice Ap77
    come diavolo faccio?
    Aiutamiiiii per favore

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    19
    Non so se ho capito bene. Praticamente vuoi non far vedere i record con codice Ap77, ma cmq uno lo vorresti mostrare giusto?

    Fammi sapere

  9. #9
    praticamente si è cosi...

    Comunque, dovrebbe visualizzarlo, già cosi, in quanto, avendo inserito anche il controllo sulla scadenza( $differenza_in_giorni>=0) dovrebbe scartare tutti quelli che, hanno una differenza uguale o maggiore di zero...

    Invece me li scarta tutti, anche quello che ha la differenza minore di 0.
    Come è possibile?
    Grazie ancora...

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    19
    Ti dovrebbe saltare tutti quelli che hanno

    Codice PHP:
    if ($TpUte == "UE" && $StatoBando=="Ap77" && $differenza_in_giorni>=0){
    break;
    //per stoppare, la visualizzazione

    credo che il problema risieda nell'istruzione di break; Forse ti termina tutto. Prova a sostituire il break con un'istruzione vuota. Dimmi cosa succede ok?

    Scusa ma stamattina sono un po' fusa

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.