Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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-00use strtotime no value e testa o que sua variavél post tá pegando. ao inves de usar type: date utilize o plugin datepicker : https://jqueryui.com/datepicker/ que funciona bem nos navegadores atuais.
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".
e no arquivo que recebe o form: