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!!!!!!!!
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!!!!!!!!
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 -
Ciao,
da quanto ho capito tu vuoi inserire in un unica variabile due date. Ma non ti conviene utilizzarne due?
occhio che è scritto in PHP maccheronico e quindi non so se funziona.Codice PHP:
$a = date(d-m-Y); //data odierna
$b = $a + 10; // + 10 giorni
---- EDIT
Ops. Risposta già data
Errare è umano, ma per fare veramente casino ci vuole la password di root
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";};
![]()
![]()
Avevo detto che non era corretto. Era solo per far vedere un'ipotetica soluzione.Originariamente inviato da Neo996sps
occhio che è scritto in PHP maccheronico e quindi non so se funziona.
Errare è umano, ma per fare veramente casino ci vuole la password di root
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
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!!![]()
![]()
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
Scusa un secondo, ma non puoi fare un ciclo per tutto?
Usi per un ciclo for dove i ha il valore di $timeinizio.
Dovrebbe funzionare ma l'ho fatta al volo quindi in caso di necessità posta eventuali errori.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
?>
![]()
Ce l'ho fatta! - ItalianPixel -