Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    assegnare data a variabile

    Ciao ragazzi,
    sono nuovo di php, dunque scusate l'ignoranza!
    Dovrei assegnare a una variabile un lasso di tempo, voglio dire:
    $a=tutti i giorni tra 01/01/2010 e 15/02/2010
    come posso fare????
    o meglio: si può fare???


    Grazie!!!!!!!!

  2. #2
    Come dico sempre, se stai imparando e devi avere delle abitudini, prendi quelle giuste.
    Per le date usa il timestamp.
    Timestamp è un valore che indica i secondi passati dal 1 gennaio 1970.
    Lavorare su numeri interi è molto più semplice che sulle date (parlo per me ma credo in generale sia più intuitivo).
    Così se la data di inizio è (esempio con timestamp inventato):
    $inizio="16678908768";
    e quella finale è:
    $fine="16699897578";
    tutti i record che hanno data inizio>=(maggiore o uguale)$inizio e la data fine<=(minore o uguale) $fine
    li visualizzi.
    semplice no?
    Per la formattazione del timestamp basta fare:
    date("d-m-Y",$inizio);
    e la stessa cosa per la fine.
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Ciao,

    da quanto ho capito tu vuoi inserire in un unica variabile due date. Ma non ti conviene utilizzarne due?

    Codice PHP:
    $a date(d-m-Y); //data odierna
    $b $a 10// + 10 giorni 
    occhio che è scritto in PHP maccheronico e quindi non so se funziona.


    ---- EDIT

    Ops. Risposta già data
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  4. #4
    Intanto grazie!!!!
    Neo996sps penso che non vada bene perché se scrivo:
    $a = date(d-m-Y); //data odierna
    $b = $a + 10; // + 10 giorni
    imposto
    $a=mktime(0,0,0,1,2,2010);

    otterrò $b=12/01/2010

    Portapipe il tuo consiglio è ok e avevo fatto già qualcosa con mktime però il mio problema è un po' più complesso.
    Ho un piccolo B&B e dovrei fare una struttura preventivi.
    Ho visto in giro e sono riuscito a utilizzare if...elseif...else ma non riesco ad andare avanti perché per ogni periodo ho un prezzo, se partenza e arrivo sono di 2 periodi diversi dovrei avere 2 righe distinte

    Ho definito delle variabili e ho scritto:
    <?php if ($arrivo>=$periodo_A_1 and $partenza<$periodo_B_1) {echo $RS_A;}
    elseif ($partenza>=$periodo_B_1 and $partenza<$periodo_C_1) {echo $RS_B;}
    elseif ($partenza>=$periodo_C_1 and $partenza<$periodo_D_1) {echo $RS_C;}
    elseif ($partenza>=$periodo_D_1 and $partenza<$periodo_C_3) {echo $RS_D;}
    elseif ($partenza>=$periodo_A_2 and $partenza<$periodo_C_4) {echo $RS_A;}
    elseif ($partenza>=$periodo_B_2 and $partenza<$periodo_C_2) {echo $RS_B;}
    elseif ($partenza>=$periodo_B_3 and $partenza<$periodo_A_1) {echo $RS_B;}
    elseif ($partenza>=$periodo_C_2 and $partenza<$periodo_B_2) {echo $RS_C;}
    elseif ($partenza>=$periodo_C_3 and $partenza<$periodo_B_3) {echo $RS_C;}
    elseif ($partenza>=$periodo_C_4 and $partenza<$periodo_last){echo $RS_C;}?>
    Lo stesso ho fatto con $arrivo ma non so come continuare. Mi servirebbe una cosa tipo excel: se(A4="ciao";"giusto";"sbagliato")....HELP!!!!!
    Pensavo che riuscendo a definire un lasso di tempo su una variabile avrei potuto scrivere una cosa tipo:
    if ($arrivo==$periodo_1 and $partenza!=$periodo_1) {echo "nuova riga";};

  5. #5
    Originariamente inviato da Neo996sps
    occhio che è scritto in PHP maccheronico e quindi non so se funziona.
    Avevo detto che non era corretto. Era solo per far vedere un'ipotetica soluzione.
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  6. #6
    Ciao,

    ti do un consiglio. Invece di utilizzare una serie di if else usa uno switch.



    Codice PHP:
    <?php
    if ($i == 0) {
        echo 
    "i equals 0";
    } elseif (
    $i == 1) {
        echo 
    "i equals 1";
    } elseif (
    $i == 2) {
        echo 
    "i equals 2";
    }

    switch (
    $i) {
        case 
    0:
            echo 
    "i equals 0";
            break;
        case 
    1:
            echo 
    "i equals 1";
            break;
        case 
    2:
            echo 
    "i equals 2";
            break;
    }
    ?>
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  7. #7
    ci avevo pensato....
    ma posso fare così???

    <?php
    if ($i == 0) {
    echo $a;
    } elseif ($i == 1) {
    echo $b;
    } elseif ($i == 2) {
    echo $c;
    }

    switch ($i) {
    case 0:
    echo $a;
    break;
    case 1:
    echo $b;
    break;
    case 2:
    echo $c;
    break;
    }
    ?>

    grazie!!

  8. #8
    il codice mi sembra corretto. Adesso te lo scrivo al volo:

    Codice PHP:

    <?php 
    switch ($partenza)
    {
    case 
    CONDIZIONE DI CASE 1:
          
    ISTRUZIONI;
          break;
    case 
    CONDIZIONE DI CASE 2:
          
    ISTRUZIONI;
          break;
    case 
    CONDIZIONE DI CASE 3:
          
    ISTRUZIONI;
          break;
    }
    ?>
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  9. #9
    Scusa un secondo, ma non puoi fare un ciclo per tutto?
    Usi per un ciclo for dove i ha il valore di $timeinizio.
    Codice PHP:
    <?php
    $prezzo
    =0//questa ci serve dopo
    for($i=$timeinizio;$i<=$timefine;$i=$i+86400){
    //qui calcoli se il valore di i (che è come dire analizzare giorno per giorno) è compreso in date particolari (in timestamp) e in questo caso uno switch potrebbe essere d'aiuto ma anche il tuo if
    //dove però al posto dell'echo aggiungi il prezzo per ogni giorno alla variabile prezzo
     
    if ($i>=$periodo_A_1 and $i<=$periodo_B_1) {$prezzo=$prezzo+$RS_A;}
    elseif (
    $i>=$periodo_B_1 and $i<=$periodo_C_1) {$prezzo=$prezzo+$RS_B;}
    elseif (
    $i>=$periodo_C_1 and $i<=$periodo_D_1) {$prezzo=$prezzo$RS_C;}
    elseif (
    $i>=$periodo_D_1 and $i<=$periodo_C_3) {$prezzo=$prezzo$RS_D;}
    elseif (
    $i>=$periodo_A_2 and $i<=$periodo_C_4) {$prezzo=$prezzo$RS_A;}
    elseif (
    $i>=$periodo_B_2 and $i<=$periodo_C_2) {$prezzo=$prezzo$RS_B;}
    elseif (
    $i>=$periodo_B_3 and $i<=$periodo_A_1) {$prezzo=$prezzo$RS_B;}
    elseif (
    $i>=$periodo_C_2 and $i<=$periodo_B_2) {$prezzo=$prezzo$RS_C;}
    elseif (
    $i>=$periodo_C_3 and $i<=$periodo_B_3) {$prezzo=$prezzo$RS_C;}
    elseif (
    $i>=$periodo_C_4 and $i<=$periodo_last){$prezzo=$prezzo$RS_C;}

    }
    //qui chiudiamo il ciclo for
    echo $prezzo//questo sarà il risultato di tutti i prezzi sommati giorno per giorno
    ?>
    Dovrebbe funzionare ma l'ho fatta al volo quindi in caso di necessità posta eventuali errori.
    Ce l'ho fatta! - ItalianPixel -

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.