O tecnologia.com.pt mudou de visual. Envie-nos aqui a sua opinião, feedback ou sugestões.
Olá, efectue login com as suas credenciais do fórum ou registe-se aqui
Pesquise no fórum

Autor Tópico: [PHP]Idade  (Lida 1717 vezes)

Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
[PHP]Idade
« em: Abril 22, 2010, 20:54:19 pm »
ha umas semanas eu e um amigo fizemos um programa para mostra a idade correcta enquanto estavamos a aprender PHP os 2 aqui esta o codigo:

FIcheiro HTML->
Código: [Seleccione]
<html>
<html>
<body>
<form action="idade3.php"  method="post">
<center><br /> Digita a tua data de aniversário. <b><font color='red'>EX: 25/1/1994</font></b><br />
Data de nascimento: <input  type="text" name="aniversario" />
<input  type="submit" name="Enviar" value="Enviar" /></center>
</body>
</html>

PHP
Código: [Seleccione]
<?php
$aniversario
=$_POST[aniversario];
$e_aniversario=explode('/'$aniversario); 

$dia_aniv=$e_aniversario[0]; 
$mes_aniv=$e_aniversario[1];
$ano_aniv=$e_aniversario[2];

$hoje=date("d/m/Y"); 
$e_hoje=explode('/'$hoje); 

$dia_hoje=$e_hoje[0];
$mes_hoje=$e_hoje[1];
$ano_hoje=$e_hoje[2];

$idade=$ano_hoje-$ano_aniv
if ((
$mes_hoje<$mes_aniv) || ($mes_hoje==$mes_aniv && $dia_hoje<$dia_aniv)) 

$idade--; 
}
echo 
"<center>Tu tens <font color='blue'><b>$idade anos</b></font></center>";
?>

e basico mas e um começo :):)


aqui esta a pagina com o script todo http://diogomota.t35.com/index.html
« Última modificação: Maio 05, 2010, 14:09:47 pm por Umbus »

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #1 em: Abril 23, 2010, 03:32:40 am »
Até está catita e minimizado, um bom trabalho digo eu ;).

Com este post até criei um novo sub-fórum, na zona de programação, onde podemos colocar os nossos trabalhos :P.






Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
Re: [PHP]Idade
« Responder #2 em: Abril 25, 2010, 20:45:30 pm »
este script serviu para eu aprender a utilidade do comando  explode    :)

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #3 em: Abril 25, 2010, 23:16:28 pm »
Eu nunca a usei, nunca precisei mesmo, mas é uma boa funcão do php :)






Offline d.martins

  • Enthusiast Member
  • *
  • Mensagens: 445
Re: [PHP]Idade
« Responder #4 em: Abril 30, 2010, 16:28:08 pm »
Bem porreiro o código, só falta ai depois a colocação numa base de dados, que dá sempre jeito, de momento não tenho código para a inserção em base de dados disso, mas quando tiver posto aqui.
www.belver.org - A Vila mais bonita de Portugal na Internet;

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #5 em: Maio 01, 2010, 22:52:07 pm »
Bem porreiro o código, só falta ai depois a colocação numa base de dados, que dá sempre jeito, de momento não tenho código para a inserção em base de dados disso, mas quando tiver posto aqui.
Mas para que queres colocar os dados numa bd?






Offline d.martins

  • Enthusiast Member
  • *
  • Mensagens: 445
Re: [PHP]Idade
« Responder #6 em: Maio 02, 2010, 21:27:10 pm »
Isto é usado para montes de sites que querem calcular as idades dos utilizadores ou das pessoas registadas, como por exemplo as agências de modelos querem as idades, ou até mesmo aqui o fórum mostra a idade da pessoa que faz anos, por isso existe a necessidade de guardar a data de aniversário numa base de dados para depois se poder correr este código em cima quando é preciso.
www.belver.org - A Vila mais bonita de Portugal na Internet;

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #7 em: Maio 03, 2010, 01:18:32 am »
Isto é usado para montes de sites que querem calcular as idades dos utilizadores ou das pessoas registadas, como por exemplo as agências de modelos querem as idades, ou até mesmo aqui o fórum mostra a idade da pessoa que faz anos, por isso existe a necessidade de guardar a data de aniversário numa base de dados para depois se poder correr este código em cima quando é preciso.
Mas isso podes fazer a parte, o codigo em si já está feito pelo diogomota, de resto é so alterares as variaveis, que neste caso, em vez de usares o $_POST, usas a função que te faz a ligação a tua tabela de idades e te coloca numa variavel o valor da string :)

Neste codigo, so colocaria uma alteração, uma maneira de ver se realmente o utlizador coloca realmente a data "d/m/Y" e não da erro ou "m/d/Y" e da.
« Última modificação: Maio 03, 2010, 01:20:48 am por Umbus »






Offline d.martins

  • Enthusiast Member
  • *
  • Mensagens: 445
Re: [PHP]Idade
« Responder #8 em: Maio 03, 2010, 18:00:43 pm »
A única forma de verificares isso da data é verificares se as parcelas são com dois ou mais caracteres, no caso do ano era se o campo fosse com menos de 4 caracteres rejeitar.

Outra coisa que se tem de ter em conta para meter na Base de dados, é o formato, as Bases de dados têm a possibilidade de ter campos para datas, e têm um formato especifico para meter a data.
www.belver.org - A Vila mais bonita de Portugal na Internet;

Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
Re: [PHP]Idade
« Responder #9 em: Maio 03, 2010, 19:18:01 pm »
isso e facil de resolver fica assim:
html:
Código: [Seleccione]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IDADE</title>
</head>
<form action="idade3.php" method="POST">
<select id="dia" name="dia">
<option value="1" label="1">1</option>
<option value="2" label="2">2</option>
<option value="3" label="3">3</option>
<option value="4" label="4">4</option>
<option value="5" label="5">5</option>
<option value="6" label="6">6</option>
<option value="7" label="7">7</option>
<option value="8" label="8">8</option>
<option value="9" label="9">9</option>
<option value="10" label="10">10</option>
<option value="11" label="11">11</option>
<option value="12" label="12">12</option>
<option value="13" label="13">13</option>
<option value="14" label="14">14</option>
<option value="15" label="15">15</option>
<option value="16" label="16">16</option>
<option value="17" label="17">17</option>
<option value="18" label="18">18</option>
<option value="19" label="19">19</option>
<option value="20" label="20">20</option>
<option value="21" label="21">21</option>
<option value="22" label="22">22</option>
<option value="23" label="23">23</option>
<option value="24" label="24">24</option>
<option value="25" label="25">25</option>
<option value="26" label="26">26</option>
<option value="27" label="27">27</option>
<option value="28" label="28">28</option>
<option value="29" label="29">29</option>
<option value="30" label="30">30</option>
<option value="31" label="31">31</option>
</select>
<select id="mes" name="mes">
<option value="1" label="Janeiro">Janeiro</option>
<option value="2" label="Fevereiro">Fevereiro</option>
<option value="3" label="Março">Março</option>
<option value="4" lable="Abril">Abril</option>
<option value="5" label="Maio">Maio</option>
<option value="6" label="Junho">Junho</option>
<option value="7" label="Julho">Julho</option>
<option value="8" label="Agosto">Agosto</option>
<option value="9" label="Setembro">Setembro</option>
<option value="10" label="Outubro">Outubro</option>
<option value="11" label="Novembro">Novembro</option>
<option value="12" label="Dezembro">Dezembro</option>
</select>
<select id="ano" name="ano">
<option value="2010" label="2010">2010</option>
<option value="2009" label="2009">2009</option>
<option value="2008" label="2008">2008</option>
<option value="2007" label="2007">2007</option>
<option value="2006" label="2006">2006</option>
<option value="2005" label="2005">2005</option>
<option value="2004" label="2004">2004</option>
<option value="2003" label="2003">2003</option>
<option value="2002" label="2002">2002</option>
<option value="2001" label="2001">2001</option>
<option value="2000" label="2000">2000</option>
<option value="1999" label="1999">1999</option>
<option value="1998" label="1998">1998</option>
<option value="1997" label="1997">1997</option>
<option value="1996" label="1996">1996</option>
<option value="1995" label="1995">1995</option>
<option value="1994" label="1994">1994</option>
<option value="1993" label="1993">1993</option>
<option value="1992" label="1992">1992</option>
<option value="1991" label="1991">1991</option>
<option value="1990" label="1990">1990</option>
<option value="1989" label="1989">1989</option>
<option value="1988" label="1988">1988</option>
<option value="1987" label="1987">1987</option>
<option value="1986" label="1986">1986</option>
<option value="1985" label="1985">1985</option>
<option value="1984" label="1984">1984</option>
<option value="1983" label="1983">1983</option>
<option value="1982" label="1982">1982</option>
<option value="1981" label="1981">1981</option>
<option value="1980" label="1980">1980</option>
<option value="1979" label="1979">1979</option>
<option value="1978" label="1978">1978</option>
<option value="1977" label="1977">1977</option>
<option value="1976" label="1976">1976</option>
<option value="1975" label="1975">1975</option>
<option value="1974" label="1974">1974</option>
<option value="1973" label="1973">1973</option>
<option value="1972" label="1972">1972</option>
<option value="1971" label="1971">1971</option>
<option value="1970" label="1970">1970</option>
<option value="1969" label="1969">1969</option>
<option value="1968" label="1968">1968</option>
<option value="1967" label="1967">1967</option>
<option value="1966" label="1966">1966</option>
<option value="1965" label="1965">1965</option>
<option value="1964" label="1964">1964</option>
<option value="1963" label="1963">1963</option>
<option value="1962" label="1962">1962</option>
<option value="1961" label="1961">1961</option>
<option value="1960" label="1960">1960</option>
<option value="1959" label="1959">1959</option>
<option value="1958" label="1958">1958</option>
<option value="1957" label="1957">1957</option>
<option value="1956" label="1956">1956</option>
<option value="1955" label="1955">1955</option>
<option value="1954" label="1954">1954</option>
<option value="1953" label="1953">1953</option>
<option value="1952" label="1952">1952</option>
<option value="1951" label="1951">1951</option>
<option value="1950" label="1950">1950</option>
<option value="1949" label="1949">1949</option>
<option value="1948" label="1948">1948</option>
<option value="1947" label="1947">1947</option>
<option value="1946" label="1946">1946</option>
<option value="1945" label="1945">1945</option>
<option value="1944" label="1944">1944</option>
<option value="1943" label="1943">1943</option>
<option value="1942" label="1942">1942</option>
<option value="1941" label="1941">1941</option>
<option value="1940" label="1940">1940</option>
<option value="1939" label="1939">1939</option>
<option value="1938" label="1938">1938</option>
<option value="1937" label="1937">1937</option>
<option value="1936" label="1936">1936</option>
<option value="1935" label="1935">1935</option>
<option value="1934" label="1934">1934</option>
<option value="1933" label="1933">1933</option>
<option value="1932" label="1932">1932</option>
<option value="1931" label="1931">1931</option>
<option value="1930" label="1930">1930</option>
<option value="1929" label="1929">1929</option>
<option value="1928" label="1928">1928</option>
<option value="1927" label="1927">1927</option>
<option value="1926" label="1926">1926</option>
<option value="1925" label="1925">1925</option>
<option value="1924" label="1924">1924</option>
<option value="1923" label="1923">1923</option>
<option value="1922" label="1922">1922</option>
<option value="1921" label="1921">1921</option>
<option value="1920" label="1920">1920</option>
<option value="1919" label="1919">1919</option>
<option value="1918" label="1918">1918</option>
<option value="1917" label="1917">1917</option>
<option value="1916" label="1916">1916</option>
<option value="1915" label="1915">1915</option>
<option value="1914" label="1914">1914</option>
<option value="1913" label="1913">1913</option>
<option value="1912" label="1912">1912</option>
<option value="1911" label="1911">1911</option>
<option value="1910" label="1910">1910</option>
<option value="1909" label="1909">1909</option>
<option value="1908" label="1908">1908</option>
<option value="1907" label="1907">1907</option>
<option value="1906" label="1906">1906</option>
<option value="1905" label="1905">1905</option>
<option value="1904" label="1904">1904</option>
<option value="1903" label="1903">1903</option>
<option value="1902" label="1902">1902</option>
<option value="1901" label="1901">1901</option>
<option value="1900" label="1900">1900</option>
</select>
<input type="submit" value="submit" name="submit" />
</form>
<body>
</body>
</html>

php:
Código: [Seleccione]
<?php
$dia_aniv
=$_POST["dia"]; 
$mes_aniv=$_POST["mes"];
$ano_aniv=$_POST["ano"];

$hoje=date("d/m/Y"); 
$e_hoje=explode('/'$hoje); 

$dia_hoje=$e_hoje[0];
$mes_hoje=$e_hoje[1];
$ano_hoje=$e_hoje[2];

$idade=$ano_hoje-$ano_aniv
if ((
$mes_hoje<$mes_aniv) || ($mes_hoje==$mes_aniv && $dia_hoje<$dia_aniv)) 

$idade--; 
}
echo 
"<center>Tu tens <font color='blue'><b>$idade anos</b></font></center>";
?>

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #10 em: Maio 04, 2010, 03:30:20 am »
Podes verificar a data apenas com o codigo:

Código: (php) [Seleccione]
<?php
$data
"2/8/2010";
$data1=explode('/'$data); 

$dia_data=$data1[0];
$mes_data=$data1[1];
$ano_data=$data1[2];

echo 
date("d/m/Y"mktime(000$mes_data$dia_data$ano_data));
?>


Ou simplesmente:

Código: (php) [Seleccione]
<?php
$data3 
"2/12/2030";
echo 
"Data é: " strftime("%m/%d/%Y",strtotime($data3));
?>

Trabalho feito em poucas para resolver o problema dos 2 digitos ou de um digito :))
« Última modificação: Maio 04, 2010, 03:32:36 am por Umbus »






Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
Re: [PHP]Idade
« Responder #11 em: Maio 12, 2010, 18:20:50 pm »
acho melhor aquilo em html.. assim nao da hipotese ao utilizador de fazer outra coisa..

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #12 em: Maio 13, 2010, 18:32:39 pm »
acho melhor aquilo em html.. assim nao da hipotese ao utilizador de fazer outra coisa..
Sempre podes usar tambem em ajax ou javascript um calendario :)






Offline diogomota

  • Distinguished Member
  • *
  • Mensagens: 735
  • Sexo: Masculino
Re: [PHP]Idade
« Responder #13 em: Maio 13, 2010, 20:18:22 pm »
ajax gostava de saber.. mas nao sei.. ja tentei compreender mas acabo sempre a dormir  :))

Offline Umbus

  • Eternal Poster
  • *
  • Mensagens: 4595
  • Sexo: Masculino
    • Email
Re: [PHP]Idade
« Responder #14 em: Maio 15, 2010, 00:51:59 am »
E basicamente javascript :fixe: