Ir para conteúdo

Arquivado

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

Nathalia Lucca

Trocar formato de Data, para salvar no banco de dados MYSQL

Recommended Posts

Ola,

Preciso de ajuda gente!

Data Inicio <input type="date" name="DataInicio" value="<?php $data = date("d/m/Y"); echo $data; ?>" >
Data Final <input type="date" nome="DataFim" onKeyPress="mascara(this, '##/##/####')" >
Em outro form recebo as informações:
$dataIni = $_POST["DataInicio"];
$dataFim = $_POST["DataFim"];
$dataI = date("Y-m-d", strtotime($dataI));
$dataF = implode("-", array_reverse(explode("/",$dataFim)));

mysql_query("INSERT INTO Fiscal(Nome_Fiscal,Siape,Email,Data_Inicio,Data_Final) Values('$nome', '$siape', '$email', '$dataI', '$dataF')") or die(mysql_error());

Não apresenta erro algun.

Os dados inciais são salvos no banco, mas as datas recebem um valor fixo de 1970-01-01.

Usei o echo e a data inicial está correta mas quando eu uso o parâmetro para converte-lá ela volta a assumir o valor 1970-01-01, enquanto a data final não mostra valor nenhum.

Desde já agradeço a ajuda e atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, se você utiliza máscara, desative o type como date, gera bug quando utilizado principalmente no chrome.

Utilize "text", junto com date, ou utilize apenas o date (navegadores atuais).

A resposta gerada pelo uso apenas da tag date, (exibida pelo browser: 31/01/2016) será: 2016-01-31, sendo assim, você não vai precisar executar qualquer edição antes de inserir.

Ainda existe o erro no código da segunda data: ("nome"), o correto seria "name"

então deixe a saída:

Confirme se na tag FORM, se method="POST".

<input type="date" name="DataInicio" value="<?  echo date("Y-m-d") ?>">
<input type="date" name="DataFim">

e no arquivo que recebe o form:

$dataI = $_POST["DataInicio"];
$dataF = $_POST["DataFim"];


mysql_query("INSERT INTO Fiscal(Nome_Fiscal,Siape,Email,Data_Inicio,Data_Final) Values('$nome', '$siape', '$email', '$dataI', '$dataF')") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utiliza a class nativa do PHP DateTime, exemplo:

$dataIni = isset($_POST["DataInicio"]) ? new DateTime($_POST["DataInicio"]) : false;
$dataInicial = $dataIni->format('Y-m-d');
echo $dataInicial; //formato 0000-00-00

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.