Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gessinger_Php

Como faço apara gravar a hora do cadastro ?

Recommended Posts

  Em 13/02/2013 at 13:15, Gessinger_Php disse:

mas dando um echo eu não vou estar grando no banco, como faz para gravar a hora correta no banco ?

 

setei e agora esta dando 12:12 a hora

 

ta gravando uma hora adiantado

 

 

O script tem que ser esse.

<?php if(isset($_POST['enviar'])){

$messagem = $_POST['messagem'];
date_default_timezone_set('America/Sao_Paulo');
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, se o banco for MySQL, NOW já retorna tanto a data quanto a hora, podendo ser formatado da forma que desejar.

 

Now, significa agora e não dia de hoje.

INSERT INTO posts(messagem, data, hora) VALUES('$messagem', now(), now())

Todavia, se você deseja data e hora, o mais correto seria utilizar um campo DATETIME

 

A inserção ficaria muito mais fácil

INSERT INTO posts(messagem, timestamp) values('$messagem', now());

Se o seu problema for na hora de obter os dados, por isso quebrou em duas partes, a formatação pode ser feita tanto na consulta com DATE_FORMAT [inline]SELECT DATE_FORMAT(NOW(), '%d-%m-%Y') AS data, DATE_FORMAT(NOW(), '%H:%i%s') AS hora[/inline] quanto com PHP usando strtotime e date

 

$sql = 'SELECT NOW() AS data, NOW() AS hora';
// Consulta, verifica e itera entre as linhas
// em cada linha, faz-se o seguinte
$data = strtotime($linha['data']);
$hora = strtotime($hora['hora']);
echo date('d-m-Y', $data);
echo date('H:i:s', $hora);

Se armazenar a data e hora num campo só, basta unir os formatadores numa função só

SELECT DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s') AS datahora
$sql = 'SELECT NOW() AS datahora';
$datahora = strtotime($linha['datahora');
echo date('d-m-Y H:i:s', $datahora);

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq esta gravando uma hora adinatado :? olha o codigo como esta

 

 

<?php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
date_default_timezone_set('America/Sao_Paulo');
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?> OBS: dessa forma sem usar o now pra pegar o ano, esta gravando assim: 000-00-00
no banco de dados estou usando para o campo hora o tipo "time"

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só seguir o que o Evandro postou no post #22, insira o valor (now()) em um campo datetime. Grave os dados no formato padrão do mysql, depois vc cria uma função pra exibir esses dados de outra maneira.

 

INSERT INTO posts(messagem, timestamp) values('$messagem', now());

 

Muita complicação para algo simples de se fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na sua tabela no banco de dados, cria uma coluna do tipo datetime

EX.: a coluna data aqui é datetime

 

No seu sql

$sql_inserir = mysql_query("INSERT INTO tabela (data) VALUES (NOW())");

 

assim ele vai inserir a data e a hora, no formato americano

2013-02-13 14:16:26

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq ta gravando uma hora adiantado ?

 

<?php if(isset($_POST['enviar'])){

$messagem = $_POST['messagem'];

date_default_timezone_set('America/Sao_Paulo');

$data = date('d/m/Y');

$hora = date('h:m'); $sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')"); echo "<script>alert('Post cadastrado com sucesso.')</script>"; } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 13/02/2013 at 20:20, Gessinger_Php disse:

pq ta gravando uma hora adiantado ?

 

<?php if(isset($_POST['enviar'])){

$messagem = $_POST['messagem'];

date_default_timezone_set('America/Sao_Paulo');

$data = date('d/m/Y');

$hora = date('h:m'); $sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')"); echo "<script>alert('Post cadastrado com sucesso.')</script>"; } ?>

 

No seu script a $hora esta errada, é date('h:i')

 

 

Entenda melhor a função date() aqui http://www.php.net/manual/pt_BR/function.date.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, este tópico ta rolando ainda?

 

 

A solução para o seu problema foi postada lá atrás...se vc não segue o que te recomendam, pq ta pedindo ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O echo só esta dando uma mensagem na tela, o script para gravação esta na linha anterior do script do vitor, para inserir diretamente a data do banco você tambem podem utilizar as funções do banco de dados, no caso o mysql:

 

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

 

$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem',CUR_DATE(),CUR_TIME())");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.