Calcolo eta' da fixare

  • Creatore Discussione Creatore Discussione Alex_70
  • Data di inizio Data di inizio
perfetto :) funzionante al 100%

l'unica cosa che ho corretto

da

Codice:
" day remaining for your '.$bir_ann.'.";

a

PHP:
" day remaining for your $bir_ann"

GRAZIE
Tommy03

doppia birra :)
 
  • Like
Reactions: Tommy03
addesso visualizzo questo

BIRTHDAY

1959-01-22 - 61 anni

si puo' fare questo?

BIRTHDAY

1959-01-22 - 61 anni 3 mesi, 29 giorni

:rolleyes:

code calcolo eta' fixato by Tommy03

PHP:
<?php // code calcolo eta' fixato by Tommy03


$datanascita = $row['birthday'];

if($datanascita != "0000-00-00"){

$dateOfBirth = $datanascita;
$today = date("Y-m-d");
$diff = date_diff(date_create($dateOfBirth), date_create($today));



// //ciclo switch

$a = $diff->format('%y');

switch($a) {
case $a >= 10 && $a < 30 :
$anni = '<font color="green">' . $a . '</font>';
break;
case $a >= 30 && $a < 40 :
$anni = '<font color="blue">' . $a . '</font>';
break;
case $a >= 40 && $a < 50 :
$anni = '<font color="orange">' . $a . '</font>';
break;
case $a >= 50 :
$anni = '<font color="red">' . $a . '</font>';
break;
default :
$anni = 'No data';
}

}else{
$anni = "Campo vuoto";
$datanascita="";
}

?>
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?> - <b><?php echo $anni; ?></b> anni</p>
 
Prova così:
Sostituisci questo:
PHP:
$a = $diff->format('%y');

switch($a) {
case $a >= 10 && $a < 30 :
$anni = '<font color="green">' . $a . '</font>';
break;
case $a >= 30 && $a < 40 :
$anni = '<font color="blue">' . $a . '</font>';
break;
case $a >= 40 && $a < 50 :
$anni = '<font color="orange">' . $a . '</font>';
break;
case $a >= 50 :
$anni = '<font color="red">' . $a . '</font>';
break;
default :
$anni = 'No data';
}
Con questo:
PHP:
$a = $diff->format('%y');
$mese = $diff->format('%m');
$giorno = $diff->format('%d');
switch($a) {
case $a >= 10 && $a < 30 :
$anni = '<font color="green">' . $a . ', '.$mese.', '.$giorno.'</font>';
break;
case $a >= 30 && $a < 40 :
$anni = '<font color="blue">' . $a . ','.$mese.', '.$giorno.'</font>';
break;
case $a >= 40 && $a < 50 :
$anni = '<font color="orange">' . $a . ', '.$mese.', '.$giorno.'</font>';
break;
case $a >= 50 :
$anni = '<font color="red">' . $a . ', '.$mese.', '.$giorno.'</font>';
break;
default :
$anni = 'No data';
}
Forse potrebbero esserci problemi con gli apici in questo codice, prova a vedere
 
Ultima modifica:
  • Like
Reactions: Alex_70
ciao Tommy03

sembra che funzioni :)

birthday.png


ma non dovrebbero essere 29 giorni? :rolleyes:

altro piccolo aiuto

se mesi e' 1 e giorno 1 vorrei visualizzare

1 mese - 1 giorno

cambiando
i con e
e
i con o

si puo' fare ? (nello stesso codice)

grazie :)
 
Oppure puoi anche fare cosi:
Sostituisci da cosi
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $anni; ?></b> anni
         - <b><?php echo $mese; ?></b> mesi
         - <b><?php echo $giorno; ?></b> giorni
 
 
    </p>
A così:
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $anni; ?></b> <?php if($anni ==1){echo "anno";}else{echo "anni";}?>
         - <b><?php echo $mese; ?></b> <?php if($mese ==1){echo "mese";}else{echo "mesi";}?>
         - <b><?php echo $giorno; ?></b> <?php if($giorno ==1){echo "giorno";}else{echo "giorni";}?>
 
 
    </p>
 
  • Like
Reactions: Alex_70
risultato


birthday2.png


continuo ha pensare che comunque manca un giorno, secondo me :rolleyes:, o mi sbaglio?

oggi e' giorno 20, dovrebbe visualizzare 20 giorni e non 19

birthday3.png
 
Ultima modifica:
Beh se uno nasce il primo maggio, il 20 maggio ha 19 giorni di vita per come lo interpreto io.
Al limite se a te non piace puoi aggiungere un +1
 
non lo so :)

se uno nasce il 20 maggio ha 20 giorni di vita, perche' escudere oggi?

strana questa cosa :rolleyes:

oppure il codice calcola quanti giorni mancano al compleanno, in questo caso e' esatto

o forse no

comunque grazie Tommy03
 
anni/o mesi/e e giorni/o come li nascondo se il campo e' vuoto?

:rolleyes:

Nessun dato disponibile deve rimanere

birthday5.png
 
Ultima modifica:
Cambia da cosi
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $anni; ?></b> <?php if($anni ==1){echo "anno";}else{echo "anni";}?>
         - <b><?php echo $mese; ?></b> <?php if($mese ==1){echo "mese";}else{echo "mesi";}?>
         - <b><?php echo $giorno; ?></b> <?php if($giorno ==1){echo "giorno";}else{echo "giorni";}?>


    </p>
A cosi:
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $a; ?></b> <?php if($datanascita == "0000-00-00"){echo "";}else{if($a ==1){echo "anno";}else{echo "anni";}}?>
         - <b><?php echo $mese; ?></b> <?php if($datanascita == "0000-00-00"){echo "";}else{if($mese ==1){echo "mese";}else{echo "mesi";}}?>
         - <b><?php echo $giorno; ?></b> <?php if($datanascita == "0000-00-00"){echo "";}else{if($giorno ==1){echo "giorno";}else{echo "giorni";}}?>


    </p>
 
Nessun dato disponibile deve rimanere :p invece e' sparito e....... sono rimasti anni - mesi - giorni
e al contrario
anche il colore e' scomparso
 
Aspetta forse mi sono perso qualcosa. Puoi postare di nuovo il codice completo comprese le ultime modifiche?
 
PHP:
<?php // code calcolo eta' fixato by Tommy03 2020.05.20


$datanascita = $row['birthday'];

if($datanascita != "0000-00-00"){

$dateOfBirth = $datanascita;
$today = date("Y-m-d");
$diff = date_diff(date_create($dateOfBirth), date_create($today));



// //ciclo switch

$a = $diff->format('%y');
$mese = $diff->format('%m');
$giorno = $diff->format('%d');

switch($a) {
case $a >= 10 && $a < 30 :
$anni = '<font color="green">' . $a . '</font>';
break;
case $a >= 30 && $a < 40 :
$anni = '<font color="blue">' . $a . '</font>';
break;
case $a >= 40 && $a < 50 :
$anni = '<font color="orange">' . $a . '</font>';
break;
case $a >= 50 :
$anni = '<font color="red">' . $a . '</font>';
break;
default :
$anni = 'No data';
}

}else{
$anni = "Nessun dato disponibile";
$datanascita="";
}

?>
    

<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $anni; ?></b> <?php if($a ==1){echo "anno";}else{echo "anni";}?>
         - <b><?php echo $mese; ?></b> <?php if($mese ==1){echo "mese";}else{echo "mesi";}?>
         - <b><?php echo $giorno; ?></b> <?php if($giorno ==1){echo "giorno";}else{echo "giorni";}?>
 
 
    </p>
 
PHP:
<?php // code calcolo eta' fixato by Tommy03 2020.05.20


$datanascita = $row['birthday'];

if($datanascita != "0000-00-00"){

$dateOfBirth = $datanascita;
$today = date("Y-m-d");
$diff = date_diff(date_create($dateOfBirth), date_create($today));



// //ciclo switch

$a = $diff->format('%y');
$mese = $diff->format('%m');
$giorno = $diff->format('%d');

switch($a) {
case $a >= 10 && $a < 30 :
$anni = '<font color="green">' . $a . '</font>';
break;
case $a >= 30 && $a < 40 :
$anni = '<font color="blue">' . $a . '</font>';
break;
case $a >= 40 && $a < 50 :
$anni = '<font color="orange">' . $a . '</font>';
break;
case $a >= 50 :
$anni = '<font color="red">' . $a . '</font>';
break;
default :
$anni = 'No data';
}

}else{
$anni = "";
$datanascita="Nessun dato disponibile";
}

?>
    

<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;?>
         - <b><?php echo $a; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($a ==1){echo "anno";}else{echo "anni";}}?>
         - <b><?php echo $mese; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($mese ==1){echo "mese";}else{echo "mesi";}}?>
         - <b><?php echo $giorno; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($giorno ==1){echo "giorno";}else{echo "giorni";}}?>


    </p>
 
ci siamo quasi :p
Nessun dato disponibile - - - e' rimasto

scomparso il colore nel campo anno
 
Ma "Nessun dato disponibile" vuoi che scompaia? Oppure vuoi che spariscano i "- - -" ma rimanga "Nessun dato disponibile"?
Nel primo caso:
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php  if($datanascita == "Nessun dato disponibile"){echo "";}else{echo $datanascita;}?>
          <b><?php echo $a; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($a ==1){echo "anno - ";}else{echo "anni - ";}}?>
         <b><?php echo $mese; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($mese ==1){echo "mese - ";}else{echo "mesi - ";}}?>
         <b><?php echo $giorno; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($giorno ==1){echo "giorno";}else{echo "giorni";}}?>


    </p>
Nel secondo caso:
PHP:
<p class="bioheading">Birthday</p><p class="biodata"><?php echo $datanascita;}?>
          <b><?php echo $a; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($a ==1){echo "anno - ";}else{echo "anni - ";}}?>
         <b><?php echo $mese; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($mese ==1){echo "mese - ";}else{echo "mesi - ";}}?>
         <b><?php echo $giorno; ?></b> <?php if($datanascita == "Nessun dato disponibile"){echo "";}else{if($giorno ==1){echo "giorno";}else{echo "giorni";}}?>
Prova così
 

Discussioni simili