Ir para o conteúdo
jms.fernandes

Calcular Idade PHP/MySQL

Mensagens Recomendadas

jms.fernandes

Ora viva!

Estou com algumas dificuldades em resolver o seguinte problema... de certeza que terá uma resolução fácil...

Tenho o seguinte código, a funcionar.


$tz = new DateTimeZone('Europe/Lisbon');
$age = DateTime::createFromFormat('d/m/Y', '04/09/1978', $tz)
    ->diff(new DateTime('now', $tz))
    ->y;
$ui->assign('age',$age);

O que pretendo, é alterar a data 04/09/1978, pelo campo da base de dados (data_nasc).

Alguém pode ajudar?

Obrigado

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ruicosta.web

Ora viva!

Estou com algumas dificuldades em resolver o seguinte problema... de certeza que terá uma resolução fácil...

Tenho o seguinte código, a funcionar.


$tz = new DateTimeZone('Europe/Lisbon');
$age = DateTime::createFromFormat('d/m/Y', '04/09/1978', $tz)
    ->diff(new DateTime('now', $tz))
    ->y;
$ui->assign('age',$age);

O que pretendo, é alterar a data 04/09/1978, pelo campo da base de dados (data_nasc).

Alguém pode ajudar?

Obrigado

Já tens base de dados e tabela, certo?

Precisas de ligar o php ao mysql:

- Utiliza PDO http://php.net/manual/en/book.pdo.php

- Utiliza de seguida SQL para obter o valor pretendido:

Select dataNascimento from utilizadores where userId = 555;

- Depois é só substituir o teu valor fixo (04/09/1978) pela tua variável que contem o valor correspondente.

PS: Atenção ao formato da data. Convém ser o mesmo.

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jms.fernandes

Obrigado Rui.

Sim já tenho tudo, a bd a tabela, a ligação e o código, o problema está na variável, que não estou a conseguir substitui-la pelo valor fixo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ruicosta.web

é isto que precisas?

Vê se percebes e diz alguma coisa.

<?php
$sql = "select data_nasc from tabela where userID = 123456";
$dbh = new PDO(" --- connection string --- ");
$stmt = $dbh->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
$tz = new DateTimeZone('Europe/Lisbon');
$age = DateTime::createFromFormat('d/m/Y', $row['data_nasc'], $tz)
        ->diff(new DateTime('now', $tz))
        ->y;
$ui->assign('age',$age);
?>

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoseF

{

$dataD = date_parse(date("d/m/Y"));
$dataE = date_parse({DataNasc1});

$n = ((gmmktime(0, 0, 0, $dataD['month'], $dataD['day'], $dataD['year']) - gmmktime(0, 0, 0, $dataE['month'], $dataE['day'], $dataE['year']))/3600/24);
{IdadeB} = (($n/365));
{IdadeB} = intval(($n/365));

}

Poderá ajudar

Editado por thoga31
Tags code + GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jms.fernandes

é isto que precisas?

Vê se percebes e diz alguma coisa.

<?php
$sql = "select data_nasc from tabela where userID = 123456";
$dbh = new PDO(" --- connection string --- ");
$stmt = $dbh->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
$tz = new DateTimeZone('Europe/Lisbon');
$age = DateTime::createFromFormat('d/m/Y', $row['data_nasc'], $tz)
	 ->diff(new DateTime('now', $tz))
	 ->y;
$ui->assign('age',$age);
?>

Obrigado Rui, serviu na perfeição. O problema estava na ligação à bd.

{

$dataD = date_parse(date("d/m/Y"));

$dataE = date_parse({DataNasc1});

$n = ((gmmktime(0, 0, 0, $dataD['month'], $dataD['day'], $dataD['year']) - gmmktime(0, 0, 0, $dataE['month'], $dataE['day'], $dataE['year']))/3600/24);

{IdadeB} = (($n/365));

{IdadeB} = intval(($n/365));

}

Poderá ajudar

Problema resolvido Jose, mas obrigado na mesma. Fica guardada.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.