Jump to content

Tabela em SQL gravar data com PHP


danfergo
 Share

Recommended Posts

boas pessoal, eu estou a fazer uns formularios para gravar numa bd e então um dos campos seria uma data mas que se escreveria por exemplo "03-05-2010", e depois aquilo gravaria na base de dados, mas gostava que a bd assumisse como uma data para que futuramente se eu quisesse criar um sistema de procurar por data. Como posso fazer isso?

Link to comment
Share on other sites

Uma solução será quando criares a tabela para guardar os dados, define no SQL o campo para o tipo DATE.

Ou DATETIME, se o tempo for importante também.

Depois, na camada do controlador, só tens que formatar a data, do standard para a formatação portuguesa quando é para mostrar, e vice-versa quando é para gravar.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

sim, mas do género, vão haver datas que não correspondem à data do dia, Do género, eu faço o registo hoje mas a data é de ontem ou de para a semana. Como faço para a gravar como DATE ? posso escrever normalmente 30-03-2010 ? Outra coisa, como configuro a data para portugues?

Link to comment
Share on other sites

Como faço para a gravar como DATE ?

Normalmente. Se não passares uma data válida, o gajo flipa.

posso escrever normalmente 30-03-2010 ?

Isso não é "normalmente", essa é a formatação portuguesa. A formatação standard é YYYY-MM-dd.

Outra coisa, como configuro a data para portugues?

Não configuras, convertes, à unhaca. Pegas na data portuguesa, partes aos bocadinhos, juntas de novo pela ordem certa, e colocas na BD. Quando vier da BD para apresentar, fazes o processo inverso.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Tens várias formas de o fazeres...

primeira:

$data = date('Y-m-d');
echo $data;

Saida:

2010-06-30

Nota: Podes trocar as letras: d-m-Y

Obs.: Desta forma simplesmente capta a hora local de cada máquina.

Para captar a data vinda do servidor:

$serverTime = time();
$data = date("Y-m-d", $serverTime);
echo $data;

Saída:

2010-06-30

Agora para inserir na BD:

$query=mysql_query("INSERT INTO [TABLE] (data) VALUES ('$data')");

PS: Se o campo data na tua tabela for tipo DATE, tiras os "-" do date, ficando assim: date('Ymd');, o tipo DATE depois trata de separar isto devidamente.

Caso o campo seja DATE, a ordem que deves por a data é: Ymd, se meteres ao contrário vai dar erro.

Link to comment
Share on other sites

danfrego:

1º Novo assunto = tópico novo.

2º Tens que dar mais informação:

- Aonde está o servidor?(em tua casa?)

- (se controlas o relógio) O relógio está certo?

- Qual é o OS do servidor?

- etc...

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.